Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Preg_match_all opcionalna wartość?
jackraymund
post
Post #1





Grupa: Zarejestrowani
Postów: 217
Pomógł: 21
Dołączył: 10.06.2011
Skąd: Głogów

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


Witam,
mam takie wyrażenie
  1. '@</B>&nbsp;\(x(.*?)\)<BR>Each@'

chodzi o ten fragment
\(x(.*?)\)
wyciąga wartośc z (x<tą>)
czasami string wygląda tak
  1. '</B><BR>Each...'

a czasami tak
  1. '</B>&nbsp;(x10)<BR>Each...'

Chciałbym zrobić warunek aby szukało opcionalnie, jeżeli nie znajdzie zwróci puste miejsce w tablicy i nie zaburzy kolejnosci

czyli dla stringów
  1. '<B>1</B><BR>Each 2<BR>'
  2. '<B>1</B> (x10)<BR>Each 2<BR>'

wyrażenie
  1. '@<B>(.*?)</B>&nbsp;\(x(.*?)\)<BR>Each(.*?)<BR>@'

takie wartości chce otrzymać
dla 1 stringu
[1][0] = 1
[2][0] = ""
[3][0] = 2
dla 2
[1][0] = 1
[2][0] = 10
[3][0] = 2

Ten post edytował jackraymund 25.10.2013, 10:49:53
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sada
post
Post #2





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

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


Nie wiem czy to możliwe, zrobiłbym to tak;
  1. if( preg_match('/<B>(\d+)<\/B>()?<BR>Each (\d+)<BR>/',$a,$match))
  2. {
  3. var_dump($match);
  4. }
  5. elseif(preg_match('/<B>(\d+)<\/B>(?:\s\(x(\d+)\))?<BR>Each (\d+)<BR>/',$a,$match))
  6. {
  7. var_dump($match);
  8. }


Ten post edytował sada 26.10.2013, 09:21:51
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 18.10.2025 - 07:33