2010-06-25 6 views
2

Je souhaite être capable de construire une expression régulière qui recherche un motif particulier dans un code HTML où un paramètre est annulé (c'est-à-dire trouver x où y est PAS présent).Mot négatif correspondant aux expressions régulières

Exemple: Je souhaite trouver des paramètres de largeur d'image où la largeur n'est pas égale à "500".

  • width="640" height="360"sélectionnne

  • width="500" height="360"ne correspondraient pas

J'utilise une recherche & remplacer plugin wordpress pour exécuter l'expression régulière - http://urbangiraffe.com/plugins/search-regex - il utilise simplement une syntaxe générique regex

Je suis capable de faire correspondre des requêtes simples mais j'ai peur que la négation soit un peu au-delà de moi - toute aide serait très appréciée.

Merci - David

Répondre

2

Vous devez utiliser un negative lookahead:

width="(?!500)([^"]+)" 
+1

Merci Andy, ça a bien fonctionné. – David

1

La façon regex faire négation serait lookaheads négatif, voir here. Cela ressemble

<img [^>]*width=(?!"500") 

Mais il serait beaucoup plus facile et moins sujettes aux erreurs à ne pas utiliser regex et utiliser un analyseur HTML à la place.