Мое название, вероятно, не объясняет точно, что я имею в виду. Возьмите следующую строку:
POWERSTART9^{{2|3}}POWERENDx{{3^EXSTARTxEXEND}}=POWERSTART27^{{1|4}}POWEREND
То, что я хочу сделать здесь, это выделить части, которые похожи на это:
{{2|3}} or {{1|4}}
Следующее выражение работает до некоторой степени, оно выбирает первое {{2 | 3}} без проблем:
\{\{(.*?)\|(.*?)\}\}
Проблема в том, что это не просто выбор первого if {{2 | 3}} и второго из {{1 | 4}}, потому что после первого у нас есть {{3 ^ EXSTARTxEXEND}}, поэтому он принимает начальная точка от {{3 и до самого конца второй части, которую я хочу | 4}}
Здесь выделено на RegExr:

Я никогда не был хорош в регулярных выражениях и не могу понять, как это остановить. Есть идеи? Я в основном хочу, чтобы он совпадал только с точным шаблоном, а не с тем, что его содержит.