Frage

Ich versuche, Notizblock zu bekommen ++ regex alle Instanzen von „abc“ und „def“ im folgenden Satz finden:

  

Die abc ging an die def.

Keiner der folgenden Syntaxen zu funktionieren scheint:

  • abc | def
  • [abc | def]
  • (abc) | (def)
  • (abc | def)

Hinweis: "[a | d]" entspricht eine beliebige Instanz von "a" oder "d", wenn ich getestet

War es hilfreich?

Lösung

Upgrade auf Notepad ++ v6. Aus dem Changelog: "PCRE (Perl Compatible Regular Expressions) wird unterstützt." Ich habe festgestellt, dass | arbeitet in regex suchen, wenn Notepad ++ v6 verwenden.

Andere Tipps

Es ist nichts Besonderes „länger als ein Zeichen“, Notepad ++ nicht die Unterstützung | Zeichen in regex. Nicht einmal "a | d" funktioniert. Siehe der Regex Hilfeseite . Version 6.1.1 von Notepad ++ unterstützt nun |.

Ich würde vorschlagen, einen Editor mit einer richtigen regex Implementierung wie Gvim oder UltraEdit .

Innerhalb einer Zeichensatzerklärung ([…]) nur die Zeichen \, ] und - sind Sonderzeichen mit den speziellen Funktionen der das nächste Zeichen zu entkommen, schließen Sie den Zeichensatz Deklaration und Kennzeichnung einen Zeichenbereich (nur, wenn nicht am Beginn geschrieben oder das Ende), respectively. Jedes andere Zeichen wird interpretet als einfacher Charakter.

So ist Ihr | in [a|d] was bedeutet, dass [a|d] alle Zeichen beschreibt a, | oder d und nicht nur a oder d wie a|d der Fall ist.

Ich habe das gleiche Problem, das ist, wie ich hier gelandet. Da es ein Notepad ++ Mangel ist, können wir mithilfe von Powershell behelfen. In Ihrem Fall, führen Sie einfach einen Select-String:

`ss abc,def filename`

Wenn auf Unix dann haben Sie andere Tools wie grep natürlich.

Ich erkenne Sie eine Lösung für Notepad ++ wollte, und ich auch, aber manchmal muss man machen tun.

| sollte funktionieren jetzt.
Dank der Regex Verbesserung in Notepad ++

abc | def

(abc) | (def)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top