MyCode - это система форматирования на основе тегов для MyBB. Примеры форматов, относящихся к его захвату:
[quote]This is a quote[/quote]
[quote=Bob]This is a quote, [b]this bit is bold[/b], [quote] this is a nested quote [/quote][/quote]
[url=http://www.stackoverflow.com][color=#ff0000]This is an anchor with a red text color.[/color][/url]
[quote][b]
Tags can also span multiple lines.
[img]http://www.website.com/image.png[/img]
[/b]
[/quote]
До сих пор я написал регулярное выражение, которое успешно захватывает большую часть этого, но не может захватить определенные вложенные элементы. Я чувствую, что мне нужно, чтобы регулярное выражение соответствовало «внутреннему первому», но я не знаю, как это сделать (если это вообще возможно).
Например, в случае: [quote]test [b]bold[/b][/quote]
, ему нужно сначала проверить внутренние теги [b], затем теги [quote]. То же самое касается: [quote][quote]nested[/quote][/quote]
Вот что я написал до сих пор, я прокомментировал это, чтобы помочь объяснить.
\[(.*?)(=[^]]+)?]([\s\S]*?)\[\/\1]
https://regex101.com/r/emNAh2/1