2016-05-05 8 views
1

ich diese Frage über negative Lookaheads gefunden, aber es funktioniert nicht für mich in Regexr (was ich reguläre Ausdrücke zur Validierung verwenden): Find lines not starting with " in Notepad++Regex: Match Linien nicht an den Start mit dem Satz

http://www.regexr.com/

ich mag jede Zeile übereinstimmen, die nicht mit nicht startet „verkauft, jetzt Schiff“

Derzeit auf regexr, wenn ich den Ausdruck ^(?!Sold, ship now) auf dem folgenden Text:

Sold, ship now: [FreeEconomy Shipping] 

Sold, NOT ship now: [FreeEconomy Shipping] 

Sold, ship now: [FreeEconomy Shipping] 

Ich erhalte 0 Treffer.

+4

Es gibt absolut keinen Grund, ein Bild für diese Frage zu veröffentlichen. Sie können Ihre Ausdrucks- und Beispieldaten als Text veröffentlichen. Bilder sollten nur verwendet werden, wenn das Problem nicht anders nachgewiesen werden kann. Eine Liste der vielen Gründe, warum Bilder vermieden werden sollten, finden Sie [in diesem Meta-Beitrag] (http://meta.stackoverflow.com/a/285557/62576). –

+1

RegExr ermöglicht Ihnen außerdem, Ihre Regex- und Testdaten zu speichern und direkt damit zu verlinken. Die Bereitstellung eines generischen Links zur RegExr-Site ist nicht hilfreicher, als ein Bild Ihrer Daten zu veröffentlichen. Aber alles, was wir wirklich brauchen, ist Ihr Code/Beispieldaten/was auch immer * als Text *, damit wir es in unseren eigenen Editor/IDE kopieren und selbst damit arbeiten können. –

+0

Kann mit Basic Regexp gemacht werden, aber es wäre von der Größe 'O (N²)' wo N ist die Länge der Zeichenfolge. :-) – bipll

Antwort

2

Sie müssen die mehrzeilige Flagge verwenden. Welche, im Falle von regexr kann wie so aktiviert werden:

regexr multiline flag

Auch, wenn Sie die entirity der Linien zurückkehren möchten, die mit Sold, ship now nicht beginnen, würde ich empfehlen Punkt unter Verwendung Plus in Ihrem Ausdruck:

^(?!Sold, ship now).+ 
+1

Notepad ++ ist immer im Multiline-Modus, also vermute ich das fehlende '. +' War das eigentliche Problem. –

+0

Segne dich. Ich hatte es versucht. + Es war einfach nicht in diesem Screenshot. – veta