C#正则表达式模式这与什么匹配

C#正则表达式模式这与什么匹配,c#,regex,C#,Regex,sombody能解释这个正则表达式将检查什么吗 Regex x = new Regex("{([^}]+)}"); 如果至少有一个字符,它将匹配大括号之间的任何内容 大括号内有组(){}。此组应至少有一个[]+符号,该符号不是右大括号^}它查找的{…}中包含一些(1个或多个)非}。如果成功,它将{…}的内容放入捕获组1 Regex x = new Regex("{([^}]+)}"); var m = x.Match("{Hello}"); string str0 = m.Groups[0]

sombody能解释这个正则表达式将检查什么吗

Regex x = new Regex("{([^}]+)}");

如果至少有一个字符,它将匹配大括号之间的任何内容


大括号内有组
()
{}。此组应至少有一个
[]+
符号,该符号不是右大括号
^}

它查找的
{…}
中包含一些(1个或多个)
非}
。如果成功,它将
{…}
的内容放入捕获组1

Regex x = new Regex("{([^}]+)}");
var m = x.Match("{Hello}");

string str0 = m.Groups[0].ToString(); // {Hello}
string str1 = m.Groups[1].ToString(); // Hello
第0组始终是整场比赛

var m2 = x.Match("{}");
var success = m2.Success; // false
它不是锚定的,因此每个字符串可能有多个匹配项

var m2 = x.Matches("{Hello}{}{World}");
int c = m2.Count; // 2 matches. The {} wasn't a match, {Hello} and {World} were

作为旁注,如果您认为这是一个好的C#解析器的开始,那么您走错了路:-)像
{{string str=“Hello”}str+=“x”}
这样的表达式会混淆这个正则表达式,所以像
{string str=“}”}
这样的表达式。这是一个无堆栈正则表达式。没有花哨的把戏。

它与花括号之间的任何东西都匹配 如
{ddhhh3233ddd}
{ddd}
这将捕获花括号内的所有内容


这可以更详细地解释它。

这将捕获花括号内的所有内容

我发现这个工具是解释正则表达式的最好工具