Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]wyrażenie regularne i preg_match raz kolejny
axwell
post 13.05.2010, 20:53:06
Post #1





Grupa: Zarejestrowani
Postów: 143
Pomógł: 1
Dołączył: 14.11.2007

Ostrzeżenie: (10%)
X----


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] ?
Go to the top of the page
+Quote Post
croc
post 13.05.2010, 20:57:16
Post #2





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


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);
Go to the top of the page
+Quote Post
Wicepsik
post 13.05.2010, 21:08:55
Post #3





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


  1. preg_match('/^[0-9\.]+MB$/', $source, $result);


Ten post edytował Wicepsik 13.05.2010, 21:09:11


--------------------
Go to the top of the page
+Quote Post
croc
post 13.05.2010, 21:19:35
Post #4





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Fifi209
post 14.05.2010, 05:08:52
Post #5





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Też jakoś dziwnie kombinujecie...
Cytat
#<b>File Size:</b> ([\d]+)\.([\d]{2})MB<br>#


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 02:32