пример текста
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 с аргументами между вторым набором {}
Примечание: если второй набориз {} пуст, что означает, что в класс не передаются аргументы с именем в первом наборе {}