.net 解析由组包围的字符串

.net 解析由组包围的字符串,.net,regex,markdown,.net,Regex,Markdown,我试图取消标记文本,但保留其标记。例如,我有如下字符串: ![my photo description](http://site.com/directory/subdir/my __image_of_something.jpg "My image title"). Lorem ipsum *dolor sit amet*, __consectetur adipisicing__ elit, _sed do_ eiusmod tempor incididunt ut labore et __dol

我试图取消标记文本,但保留其标记。例如,我有如下字符串:

![my photo description](http://site.com/directory/subdir/my __image_of_something.jpg
"My image title"). Lorem ipsum *dolor sit amet*, __consectetur adipisicing__ elit,
_sed do_ eiusmod tempor incididunt ut labore et __dolore magna aliqua__.
我使用正则表达式模式
\s+[\*\\\\]{1,2}(.*)[\*\\\\\\\'{1,2}
,但它也会接受以空格和双下划线开头的错误条目,并在正确条目开始的地方结束

如何编写满足以下要求的正则表达式:

  • 它可以以单或双星号或单或双下划线开头
  • 它必须是非贪婪的(用“?”标记)
  • 它必须以与开始时完全相同的组结束

非贪婪=
,因此第二点可能有错误。试试
\s+([*.]{1,2})(.*)\1
@Dukeling哇,太棒了!当然,关于限定符的贪婪性,您是绝对正确的。您能从示例代码中列出您想要什么吗?实际上类似于
\*\*?|uuuuu?
而不是
[*\]{1,2}
可能更好,否则*abc*将有效。那么递归定义呢:
\uuu**abc**uuu
\uuu ab**cd**ef\uuu