2010-05-03 6 views
4

Je veux une expression régulière qui ignore la phrase contenant le caractère "XYZ". J'utilise cela, mais ce ne fonctionne pasRegex très simple

<td>(.+[^XYZ])</td> 
+0

Comment faites-vous correspondre les phrases? –

Répondre

3

Pour correspondre à une ligne ne contenant pas la chaîne « XYZ », vous pouvez utiliser un negative lookahead:

^(?:(?!XYZ).)*$ 

Si vous voulez juste vérifier que la ligne ne contient aucun de ces caractères dans une position quelconque, utilisez une classe de caractères négative:

^[^XYZ]*$ 
1

"(. + [^ XYZ]) "signifie" au moins un caractère suivi de ni X, Y, Z. La correspondance de tout ce qui ne contient pas X, Y, Z fonctionne avec "([^ XYZ] *)", ou "([^ XYZ] +)" si vous voulez des correspondances vides.