0

我有一个这样的字符串

ha regular{{patou0383838}}but if{{coffee}}i love {{tomato}}

我需要一个 c# 中的正则表达式,它可以帮助我提取以 . 开头{{和结尾的所有文本}}。因此,例如在上面的示例中,我应该能够拥有一组 3 个子字符串

{{patou0383838}}
{{coffee}}
{{tomato}}

我尝试了在网上找到的各种示例,但它们并没有解决我的问题。

4

3 回答 3

1

你可以这样尝试:

\{{.*?\}}

或者

\{\{.*?\}\}
于 2013-10-11T15:30:20.303 回答
0

如果您的令牌肯定不会像{{token {{1}}}}您可以使用的那样嵌套

\{\{([^}]+)\}\}

括号内的文本被捕获为 group 1。例如,对于像{{coffee}}第一个小组这样的比赛将举行coffee


尽管大括号{}用于指定正则表达式中的范围,就像{m,n}它们在以其他方式包含时不被视为特殊字符一样。因此,我们可以通过不将它们转义为来简化正则表达式

{{([^}]+)}}
于 2013-10-11T15:34:34.247 回答
0

{并且}是正则表达式中的特殊字符,因此需要对其进行转义。此外,由于您可能在一行中有多个匹配项,因此您需要进行非贪婪匹配。模式将类似于

string pattern = @"(\{\{.*?\}\})"

括号是捕获的内容,包括{{}}

于 2013-10-11T15:35:07.253 回答