php preg_match_all и рекурсивный повтор

У меня есть некоторые проблемы с сгенерированным файлом, и мне нравится делать некоторую замену

Скажем, у меня есть такой шаблон:

<ul/><htmlelement>some text</htmlelement> 

Я хочу найти с моим regexep значение некоторого текста, так как я могу найти элемент htmlelement с регулярным выражением, я хочу рекурсивно включить его в регулярное выражение, например

 preg_match_all("#<ul/><([^><])>(.)*</(first capuring match)>#", $string, $matches); 

У тебя есть решение?

  1. Вы пропускаете + квантификатор для тега открытия «htmlelement».

  2. Вам нужна * внутри группы захвата

  3. и лучше сделать это не жадным ? ,

  4. См. «Первый захват матча» с \1 .

Поэтому регулярное выражение должно быть:

 <ul\/><([^><]+)>(.*?)<\/\1> ^ ^^ ^ 1 23 4 

Демо: https://regex101.com/r/f25N9J/1