У меня есть строка в JavaScript, который выглядит следующим образом:JavaScript Чередование без скобок
"This {{@is}} a $|test$| string with $|@string$| delimiters {{as}} follows"
И у меня есть регулярное выражение, которое используется для извлечения строки между $|.*?$|
и {{.*?}}
следующим образом:
/{{(.*?)}}|\$\|(.*?)\$\|/g
Пример: https://regex101.com/r/mV3uR1/1
Я хотел бы комбинировать чередование, так что существует только одна соответствующая группа, например:
/{{|\$\|(.*?)}}|\$\|/g
Но это, кажется, игнорировать мой квантор 0 или 1 раз (?
) и он совпадает со всей строкой до ... {{as
.
Пример: https://regex101.com/r/qZ7iI5/1
Почему это происходит?
Если я усилить, что регулярное выражение включать круглые скобки следующим образом, он делает работу:
/({{|\$\|)(.*?)(}}|\$\|)/g
Пример: https://regex101.com/r/fT5qH0/1
Но затем включает фигурные скобки/доллар трубу в моей согласующего группе, которая что я пытаюсь избежать (поскольку я беспокоюсь только о строке между этими разделителями, так что вам нужна только одна соответствующая группа).
Может ли кто-нибудь пролить свет на это, пожалуйста?