Вы можете сделать так, как в JavaScript:
var str = "123 $test 123";
str = str.replace(/(\$)([a-z]+)/gi, "$2");
Это (довольно глупо) заменит "$ test" на "test". Но представьте, что я хотел бы передать полученную строку из $2 в функцию, которая возвращает другое значение. Я попытался сделать это, но вместо того, чтобы получить строку "test", я получаю "$ 2". Есть ли способ достичь этого?
// Instead of getting "$2" passed into somefunc, I want "test"
// (i.e. the result of the regex)
str = str.replace(/(\$)([a-z]+)/gi, somefunc("$2"));