Предположим, текст выглядит следующим образом:Как написать шаблон регулярного выражения, не вложен в другой шаблон
some text \({{my}} \) more text \(some\) text {{my}} more text
some text {{my}} more text some text {{my}} more text
Текст содержит два специальных моделей: {{...}}
и \(...\)
и {{...}}
шаблон может быть вложен в \(...\)
шаблон в тексте.
Моя задача - написать регулярное выражение (в php, так что механизм PCRE), который будет соответствовать всем шаблонам {{..}}
, которые не вложены внутри шаблона \(...\)
. Итак, для примера выше, регулярное выражение должно возвращать только 3 {{...}}
шаблонов, потому что первое вложено в \(...\)
.
Ну, шаблон, чтобы найти все {{...}}
является /\{\{(?P<options>.*?)\}\}/g
и у меня есть regex101 скрипку для него здесь: http://regex101.com/r/cQ1tQ4/1
Можно ли создать шаблон, как я описал выше?
или '\ {\ {(? P [^}] *) \} \} (?! [^ \\] * \\\)) 'http://regex101.com/r/cQ1tQ4/4 –