Regex --> Détecter à la fois "gros con" "g
Posté : 03 mars 2009, 20:56
Regex --> Détecter à la fois "gros con" "gros&nbs;con" ou "gros con"
Bonjour et désolé pour l'exemple
Dans un script, j'ai la possibilité de définir une liste d'expressions à filtrer.
Ainsi, si je définis :
--> "gros con" ne passe plus. 
Mais j'aimerais aussi que si l'on écrive "gros con" (avec deux espaces entre les deux mots), cela soit aussi bloqué.
J'ajoute donc ceci :
--> "groscon" "gros con", "gros con" (2 espaces entre les deux) ou même "gros con" (3 espaces) ne passent plus.
Le \s* indique en effet qu'il faut repérer 0 ou plusieurs espaces blancs.
Et maintenant le problème :
Lorsque deux espaces blancs se suivent, l'éditeur wysiwyg que j'utilise a la fâcheuse tendance de remplacer le deuxième espace blanc par . Donc si la personne écrit "gros con" avec deux espaces entre les deux mots, l'éditeur wysiwig change cela en "gros con"). De ce fait, mon expression regex ne détecte plus le gros mot car un s'y est glissé.
J'aimerais donc connaitre le moyen d'indiquer dans mon expression qu'il faut bloquer toute chaine començant par "gros" et se terminant par "con", avec, entre les deux, soit rien du tout, soit des espaces blancs ou des .
Voici quelques exemples de ce qu'il faudrait bloquer :
Merci de votre aide! Je ne trouve pas la solution 
Bonjour et désolé pour l'exemple
Dans un script, j'ai la possibilité de définir une liste d'expressions à filtrer.
Ainsi, si je définis :
Code : Tout sélectionner
$filter = "gros con"Mais j'aimerais aussi que si l'on écrive "gros con" (avec deux espaces entre les deux mots), cela soit aussi bloqué.
J'ajoute donc ceci :
Code : Tout sélectionner
$filter = "gros\s*con"Le \s* indique en effet qu'il faut repérer 0 ou plusieurs espaces blancs.
Et maintenant le problème :
Lorsque deux espaces blancs se suivent, l'éditeur wysiwyg que j'utilise a la fâcheuse tendance de remplacer le deuxième espace blanc par . Donc si la personne écrit "gros con" avec deux espaces entre les deux mots, l'éditeur wysiwig change cela en "gros con"). De ce fait, mon expression regex ne détecte plus le gros mot car un s'y est glissé.
J'aimerais donc connaitre le moyen d'indiquer dans mon expression qu'il faut bloquer toute chaine començant par "gros" et se terminant par "con", avec, entre les deux, soit rien du tout, soit des espaces blancs ou des .
Voici quelques exemples de ce qu'il faudrait bloquer :
Code : Tout sélectionner
"gros con", "gros con", "gros con", "gros con", "gros con".