Regex для разбора текстовой разметки
Мне нужно регулярное выражение для разбора форматированного текста с *bold*
а также _italic_
стили, которые также могут быть объединены как _*bold and italic*_
или же _*bold* and italic_
,
Я получил следующее регулярное выражение:
([*_])(.+?)\1
но он будет анализировать только внешние символы, оставляя вывод следующим образом:
Текст, выделенный жирным шрифтом и курсивом
Явное добавление второй группы захвата, кажется, делает свое дело:
([*_])((?1))?(.+?)\2?\1
но, возможно, есть более общий подход, который позволил бы применять произвольное количество символов разметки одновременно (например, ~_*strikethrough*_~
)?
Кроме того, возможно ли соответствовать формату, как _*bold* and italic_
?