2009-09-28 6 views
13

Je ne peux pas comprendre preg_replace du tout, il me semble juste chinois, de toute façon j'ai juste besoin d'enlever "&page-X" d'une chaîne si c'est là.Simple preg_replace

X étant un certain nombre de cours, si quelqu'un a un lien vers un tutoriel utile preg_replace pour les débutants qui serait également utile!

Répondre

17

En fait, la syntaxe de base des expressions régulières, en tant que prise en charge par preg_replace et f Riends, est assez facile à apprendre. Pensez-y comme une chaîne décrivant un motif avec certains caractères ayant une signification particulière.

Dans votre cas très simple, un modèle possible est:

&page-\d+ 

Avec \d signifie un chiffre (caractères numériques 0-9) et + sens: Répétez l'expression juste avant + (ici: \d) un ou plusieurs fois. Tous les autres personnages se représentent eux-mêmes.

Par conséquent, le motif correspond ci-dessus l'une des chaînes suivantes:

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

Depuis les preg fonctions utilisent une syntaxe Perl compatible et les expressions régulières sont notées entre les barres obliques (/) en Perl, vous devez entourer le modèle en barres obliques:

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

en fait, vous pouvez utiliser d'autres caractères ainsi:

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

Pour une référence complète de la syntaxe prise en charge, voir le PHP manual.

+0

alors que si je voulais remplacer "/ page-1" – bluedaniel

+0

ah got it, #/page- \ d + #, merci pour votre réponse approfondie – bluedaniel

Questions connexes