Я пытаюсь написать регулярное выражение в JavaScript для поиска многострочного скрипта bash и извлечения всех имен переменных. Я не могу ни сам разобраться, ни найти сценарий, который делает именно то, что мне нужно.
Я получил это далеко:
var re = /(?:^|\W)\$(\w+)(?!\w)/g;
var s = "test $test1 testagain$test2 testyetagain $test3 $test4$test5";
var matches = [];
while (match = re.exec(s)) {
matches.push(match[1]);
}
Это даст мне «test1», «test3» и «test4». Но я также хотел бы получить "test2" и "test5".
Было бы также неплохо, если бы я мог получить "\ $", чтобы он НЕ совпадал, если бы он появился в строке. Другими словами, есть ли способ избежать строки "$" в тексте, чтобы она игнорировалась моим регулярным выражением? Таким образом, если в тексте появилось «\ $ 1.00», то не будет соответствовать «1», как это делает приведенное выше регулярное выражение.
Заранее благодарен за любую помощь или за то, что указал мне правильное направление.
PS Это на самом деле для Action Script 3, но все, что работает в JavaScript до ES6, должно работать в AS 3.
PPS Конечная цель - заменить эти совпадения переменными из хеш-значения ключа.