Итак, я хочу захватить подстроку между двумя специальными символами в JavaScript, используя регулярные выражения.
Скажем, у меня есть строка "$Hello$, my name is $John$"
, я бы хотел, чтобы .match возвращал массив [Hello, John]
.
* Кроме того, я не хочу захватывать матч между двумя матчами. Так что я бы не хотел фиксировать $, меня зовут $, так как технически он находится между двумя $.
Я использовал регулярное выражение
var test = str.match(/(?<=\$)(.*)(?=\$)/);
Что работает, но дублирует каждую запись дважды. Так оно и есть
[Привет, Привет, Джон, Джон].
Я также использовал var test = str.match(/(?<=\$)[^\$]+?(?=\$)/g)
Но это возвращает все, что находится между каждым соответствием (в примере, который я перечислил выше, $, меня зовут $.)
Как я могу это исправить?