Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wyrażenie regularne i preg_match raz kolejny
Forum PHP.pl > Forum > Przedszkole
axwell
Kolejny raz napotkałem się na przymus użycia w moim skrypcie funkcji preg_match. I oczywiście ponownie pojawił się problem. Tekst mam już w zmiennej $stored, teraz muszę wyciąć z niego pewną informację. Fragment, który mnie interesuje wygląda tak:

  1. <b>File Size:</b> 0.00MB<br>


Jak pewnie łatwo się domyśleć chciałym pobrać tekst między </b> a <br> bez jednostki, w powyższym przykładzie funkcja miałaby zwrócic 0.00 Problem leży w konstrukcji takiego wyrażenia. Próbuje dążyć do tego aby moje wyrażenie wyglądało tak:
Cytat
[<b>File size:</b> ]+[to czego potrzebuje]+[MB<br>]";


Moje pytanie, jak wyodrębnić z powyższego tekstu [to czego potrzebuje] ?
croc
Jeśli chodzi o większy fragment to tak:
  1. preg_match('/<b>File Size:<\/b> (.*?)MB<br>/', $source, $result);


A jeżeli wiesz, że nie będzie tam innych liczb zmiennoprzecinkowych to tak:
  1. preg_match('/\d+\.\d+/', $source, $result);
Wicepsik
  1. preg_match('/^[0-9\.]+MB$/', $source, $result);
croc
Wicepsik, twoje rozwiązanie jest mało eleganckie z wielu powodów:

  1. miało być bez rozszerzenia
  2. twój wzór przechwyci nawet ".MB" czy "8...2.......1MB"
  3. w [ ] nie używa się slasha przed kropką, bo w nawiasach oznacza już konkretnie znak kropki
Fifi209
Też jakoś dziwnie kombinujecie...
Cytat
#<b>File Size:</b> ([\d]+)\.([\d]{2})MB<br>#
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.