Nach Ihrem Screenshot, die ganzes Wort Option aktiviert ist:
Somit ist die ]
Sie passen erfordert ein Wort char, nachdem er und das erste Zeichen sollte sein ein Wort char auch.
Eine mögliche Lösung für Sie verwenden nur Deaktivieren der Option.
Wenn Sie jedoch nur/Highlight auswählen müssen/ersetzen/entfernen Sie die erste ]
in der Datei, können Sie
\A[^]]*\K]
verwenden, in denen:
\A
- den Beginn der Spiele Dokument
[^]]*
- entspricht 0+ Zeichen außer ]
\K
- ein Operator zum Zurücksetzen des Matches, der den gesamten Text auslässt, der bisher gefunden wurde
]
- entspricht einem Literal ]
.
Sie brauchen nicht ]
außerhalb einer Zeichenklasse zu entkommen, und wenn es das erste Zeichen innerhalb einer Zeichenklasse in PCRE/Boost-regex Geschmack.
Beachten Sie, dass wenn Sie die erste ]
in jeder Zeile übereinstimmen müssen, müssen Sie \A
mit dem ^
(Zeilenanfang Anker) ersetzen und \r\n
dem negierten Zeichenklasse hinzu:
^[^]\r\n]*\K]
Try '\ A [^]] * \ K]' –
Cou Gibt es Beispiele für gültige und ungültige Strings?Ihre letzte Regex erfasst tatsächlich jede Zeichenfolge, die nicht mit einem "]" beginnt, bis sie ein "]" findet - ist das das erwartete Verhalten? Wenn Ihre Zeichenfolge beispielsweise mit einer schließenden Klammer beginnt, erfasst sie nichts. –
@VictorLiaFook also wie kann ich sicher sein, nur das erste Vorkommen von ']' zu erfassen? Ich habe '^ (\ S *) \]' auch versucht, irgendein nicht whitespace Zeichen zu entsprechen, bis ich erstes Vorkommen von 'finde', aber dieses fängt nichts auch nicht ein – Growler