2013-06-03 2 views
9

Je suis en train de faire correspondre les lignes suivantes ne entrée ne contenant pas "VelSign" (en utilisant Notepad ++):assorti d'une ligne ne contenant pas un mot dans Notepad ++

#MARKER VelSign 457,45 50 kmh

# MARKER IsBridge vrai

#MARKER TrafficSign 45

#MARKER TrafficLight 45 445 444 40

J'utilise l'expression rationnelle suivante: ^#MARKER (?!.*VelSign).*$

ne semble pas fonctionner. Qu'est-ce que je fais mal?

+0

Maintenant que vous avez modifié le backslash, ce modèle fonctionne parfaitement bien pour moi. –

+0

Avez-vous essayé d'utiliser "Trouver tout dans le document actuel"? – Jerry

+0

Copie possible de [bloc-notes ++ Regex inverse remplacer (tout sauf chaîne)] (http://stackoverflow.com/questions/8264391/notepad-inverse-regex-replace-all-but-string) –

Répondre

8

Make sure that you upgrade Notepad++ to version 6, car ils ont beaucoup changé dans le moteur de regex. Les sauts de ligne et les suspensions étaient particulièrement problématiques dans les versions antérieures.

+0

Désolé pour la faute de frappe. Mon regex est:^# MARKER (?!. * VelSign). * $ –

+0

@MihaiGALOS qui fonctionne pour moi. qu'est-ce que ça correspond pour vous? (ou ce qui ne correspond pas) –

+0

Merci pour le retour rapide. Notepad ++ dit: Vous ne trouvez pas le texte "^ # MARKER (?!. * VelSign). * $" –

8

Tournez ceci:

^#MARKER (?!.\*VelSign).*$ 

Dans ceci:

^#MARKER (?!.*VelSign).*$ 

Vous échappez l'opérateur *, ce qui provoque le match d'un * littéral au lieu de 0 ou plus ..

Aussi, assurez-vous que vous avez coché l'option RegularExpression (voir le troisième bouton radio):

enter image description here

+0

@MihaiGALOS Avez-vous essayé d'utiliser "Trouver tout dans le document actuel"? – Jerry

+0

L'expression rationnelle était ok. J'ai mis à jour à 5.9.2 avant de demander, il semble que v6 l'ai fait correspondre ... :) Merci. –

Questions connexes