Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Preg_match_all opcionalna wartość?
Forum PHP.pl > Forum > Przedszkole
jackraymund
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
sada
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. }
jackraymund
To samo zrobiłem, ale ucze się dopiero wyrażeń, i sądziłem że są na tyle rozwinięte że da się takie coś zrobić.
Poleciłbyś jakiś tutorial w j. polskim? Bo mam troszke pytań, i poszerzył bym wiedze na temat wyrażeń.
sada
nie mam nic takiego na oku , jak mam problem google smile.gif
jackraymund
Szukam po flagach wyrażeń, ale co tutorial to inne flagi...
ten zawiera najwięcej flag
http://www.webmaster.org.pl/wyrazenia-regularne.html
czy są to wszystkie?
Miałem kiedyś taki fajny tutorial, który był bardzo długi i wyglądał na wyczerpujący, a teraz niemogę znaleźć :/
@edit
udało mi się znaleźć, gdyby ktoś szukał
http://www.gajdaw.pl/php/wyrazenia-regular...rial/print.html
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.