C# 如何使用Dotnet从以{和}为边界的大字符串中提取所有子字符串?

C# 如何使用Dotnet从以{和}为边界的大字符串中提取所有子字符串?,c#,regex,C#,Regex,我有一个html文件,其中包含各种占位符,如{first},{second} 例如: <html> <body> The first name is {first}. Followed by {second} <body> </html> 名字是{first}。后跟{second} 我需要用c#来提取那些。 我试着使用正则表达式({[A-Za-z}.+)\w+,但失败了每个{}-封闭的子字符串可以描述为“1{,后面是一些非{/code>,后面

我有一个html文件,其中包含各种占位符,如{first},{second}

例如:

<html>
<body>
The first name is {first}. Followed by {second}
<body>
</html>

名字是{first}。后跟{second}
我需要用c#来提取那些。
我试着使用正则表达式({[A-Za-z}.+)\w+,但失败了

每个
{}
-封闭的子字符串可以描述为“1
{
,后面是一些非
{/code>,后面是1
}
”,在正则表达式中类似于:

\{[^{}]+\}

在这种情况下,我可以使用Regex r=new Regex(@“{[^{}]+\}”);MatchCollection mc=r.Matches(body);提取mc
@“{.+?}”
中的所有匹配项-使用惰性量词此@“{.+?}”返回}之后的所有字符串,如{second}。。。。。