2009-09-28 22 views
13

Nie mogę w ogóle odgadnąć preg_replace, to po prostu wygląda na chińskiego, w każdym razie po prostu muszę usunąć "&page-X" z ciągu, jeśli tam jest.Proste preg_replace

X być liczbą oczywiście, jeśli ktoś ma link do przydatnego tutoriala preg_replace dla początkujących, który również byłby przydatny!

Odpowiedz

17

faktycznie podstawowej składni wyrażeń regularnych, jak i obsługiwanej przez preg_replace f Riends, jest dość łatwy do nauczenia. Pomyśl o tym jako o łańcuchu opisującym wzór z pewnymi postaciami o specjalnym znaczeniu.

W swoim bardzo prostym przypadku, możliwe jest wzór:

&page-\d+ 

Z \d oznacza cyfrę (0-9 cyfr) oraz + znaczenie: powtórzyć wyraz tuż przed + (tutaj: \d) jeden lub więcej razy. Wszystkie inne postacie po prostu przedstawiają siebie.

Dlatego wzór powyżej dopasowuje dowolny z następujących ciągów:

&page-0 
&page-665 
&page-1234567890 

Ponieważ funkcje preg używać składni Perl kompatybilnego i wyrażenia regularne są oznaczone między ukośniki (/) w Perl, trzeba otoczyć wzór w ukośniki:

$after = preg_replace('/&page-\d+/', '', $before); 

Faktycznie, można użyć innych znaków, a także:

$after = preg_replace('#&page-\d+#', '', $before); 

Aby uzyskać pełne informacje o obsługiwanej składni, zobacz PHP manual.

+0

co jeśli chciałbym wymienić "/ page-1" – bluedaniel

+0

ah dostałem, #/page- \ d + #, dziękuję za dokładną odpowiedź – bluedaniel