Ich verwende Regex, um (
in anderen Regexes (oder Regexs?) durch (?:
zu ersetzen, um sie in nicht passende Gruppen umzuwandeln. Mein Ausdruck geht davon aus, dass keine (?X
-Strukturen verwendet werden und wie folgt aussehen:
Leider funktioniert das nicht, wenn zwei Übereinstimmungen nebeneinander liegen, wie in diesem Fall: how((\s+can|\s+do)(\s+i)?)?
Mit Lookbehinds ist die Lösung einfach:
%Vor%Aber JavaScript unterstützt keine Lookbehinds, also was kann ich tun? Meine Recherchen brachten keine einfache universelle Lookbehind-Alternative.
Benutze Lookbehind durch Umkehrung:
Beachten Sie, dass das Regex-Muster auch umgekehrt ist, sodass wir Look-Ahead statt Look-Back verwenden können und der Substitutions-String auch umgekehrt ist. Es wird mit längeren Regexps zu schwierig, aber in diesem Fall ist es immer noch nicht so unlesbar.
Eine Option besteht darin, einen zweistufigen Ersatz mit einem Token durchzuführen (ich mag Unicode dafür, da es unwahrscheinlich ist, dass es an anderer Stelle erscheint):
(EDITED)
string Beispiel:
%Vor%Einzeilige Lösung:
Ergebnis:
%Vor% und natürlich funktioniert es mit Strings wie (\ s + \(can\)
| \ s + do) (\ s + i)?)?
Tags und Links javascript regex