W poniższym ciągu wejściowego:Regular Expression Wytyczne potrzebne JavaScript
{$foo}foo bar \\{$blah1}oh{$blah2} even more{$blah3} but not{$blarg}{$why_not_me}
Próbuję dopasować wszystkie instancje {$SOMETHING_HERE}
które nie są poprzedzone odwrotnym ukośnikiem przed zmianą.
Przykład:
chcę dopasować {$SOMETHING}
ale nie \{$SOMETHING}
.
Ale ja chcę, aby dopasować \\{$SOMETHING}
Strzały:
wszystkich moich prób dotychczas będzie pasował do tego, co chcę z wyjątkiem tagów tuż obok siebie jak {$SOMETHING}{$SOMETHING_ELSE}
Tutaj to co aktualnie mam:
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);
Które wyjścia:
["{$foo}", "h{$blah2}", "e{$blah3}", "t{$blarg}"]
bramki
chcę go mieć:
["{$foo}", "{$blah2}", "{$blah3}", "{$blarg}", "{$why_not_me}"]
Pytanie
Czy ktoś może wskazać mi w dobrym kierunku?
Jestem świadomy, że brakuje mi tego, czego potrzebuję i że javascript ich nie obsługuje. Nigdy wcześniej nie robiłem fałszywego lookbehinda, ale sprawdzę link! – nathanjosiah
@nathanjosiah Zaktualizowałem swoją odpowiedź z dodatkowymi informacjami. – Griffin
Dzięki za artykuł! Dokładnie to, czego potrzebowałem! Przedstawiłem moje rozwiązanie jako odpowiedź. – nathanjosiah