2009-12-10 8 views
0

je l'utiliser pour nettoyer une chaîne:expressions régulières pour supprimer tous les caractères sauf les caractères alphanumériques et certains signes de ponctuation

$clean = preg_replace("/[^a-zA-Z0-9\/_.;|+ -]/", '', $str); 

Works bonne, mais je dois ajouter dans le regex avec le caractère « & » aussi, j'ai essayé d'ajouter :

$clean = preg_replace("/[^a-zA-Z0-9\/_.;&|+ -]/", '', $str); 

ou

$clean = preg_replace("/[^a-zA-Z0-9\/_.;\&|+ -]/", '', $str); 

mais cela ne fonctionne pas, pourquoi? Comment puis-je le faire? Un grand merci.

+0

a tenté d'échapper à ce char? – yoda

+0

salut yoda, s'échapper comment? – Maiori

+0

Cela fonctionne pour moi. 'preg_replace ("/[^ a-zA-Z0-9 \/_.; & | + -]/", '', '&')' renvoie exactement '&' comme prévu. – Gumbo

Répondre

1

Je ne suis pas sûr de php, mais vous pouvez essayer backslasher la barre oblique inverse: \\&

+0

bonjour holub, mmm .. semble ne fonctionne pas :( – Maiori

3

j'ai essayé votre modèle $clean = preg_replace("/[^a-zA-Z0-9\/_.;\&|+ -]/", '', $str); il semble fonctionner très bien pour moi, même sans y échapper ...

essayez cet outil pour tester vos expressions régulières Regular expression tester

+0

@holub backslash le backslash thingy dones de travail en php (atleast) ce qu'il fera est d'échapper un backslash ("\") pas "&" –

+0

On dirait que ça marche juste bien –

+0

Joli outil! Je l'ai aimé !!!!! –

Questions connexes