пример текста
this text will be left alone ##{class1}{arg1;arg2;arg3}## some other text and
another thingie ##{Class2}{]##
В настоящее время я использую это '/\#\#\{(?P<class>.+)\}\{(?P<args>.+)\}\#\#/i'
для сопоставления, но моя проблема в том, что когда это регулярное выражение встречается несколько раз, потому что оно будет соответствовать даже тексту между двумя совпадающими шаблонами.
И это результат моего регулярного выражения ##{ClassName1}{arg1;arg2;arg3}## some other random ##{class2}{}##
.
Есть ли более элегантный способ извлечь ##{class1}{arg1;arg2;arg3}##
и ##{Class2}{]##
из строки и заменить их выходными данными соответствующих классов?
Я использую это, чтобы заменить их выводом из Class1 и Class2 с аргументами между вторым набором {}
Примечание: если второй набор {} пуст, это означает, что в класс с именем из первого набора {} не передаются никакие аргументы.