In dem folgenden Eingabestring:Regular Expression Anleitung benötigte für Javascript
{$foo}foo bar \\{$blah1}oh{$blah2} even more{$blah3} but not{$blarg}{$why_not_me}
ich alle Instanzen von {$SOMETHING_HERE}
anzupassen versuchen, die von einem unescaped Backslash nicht vorangestellt.
Beispiel:
Ich will es {$SOMETHING}
passen aber nicht \{$SOMETHING}
.
Aber ich will es \\{$SOMETHING}
Versuche zum Spiel:
alle meine Versuche, so weit wird passen, was ich will, außer für Tags direkt nebeneinander wie {$SOMETHING}{$SOMETHING_ELSE}
Hier ist was ich gerade habe:
var input = '{$foo}foo bar \\{$blah1}oh{$blah2} even more{$blah3} but not{$blarg}{$why_not_me}';
var results = input.match(/(?:[^\\]|^)\{\$[a-zA-Z_][a-zA-Z0-9_]*\}/g);
console.log(results);
Welche Ausgänge:
["{$foo}", "h{$blah2}", "e{$blah3}", "t{$blarg}"]
Tor
ich es sein will:
["{$foo}", "{$blah2}", "{$blah3}", "{$blarg}", "{$why_not_me}"]
Frage
Kann jemand mich in die richtige Richtung?
Ich bin mir bewusst, dass ein Look-Behind ist, was ich brauche und dass Javascript sie nicht unterstützt. Ich habe noch nie einen gefälschten Lookbehind gemacht, aber ich werde den Link sehen! – nathanjosiah
@nathanjosiah Ich habe meine Antwort mit mehr Informationen aktualisiert. – Griffin
Danke für den Artikel! Genau das, was ich brauchte! Ich habe meine Lösung als Antwort veröffentlicht. – nathanjosiah