有人能解释一下这个正则表达式会检查什么吗
Regex x = new Regex("{([^}]+)}");
它寻找一个里面{...}
有一些(1个或更多)non-}
的。如果成功,它将{...}
捕获组 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 = "}" }
. 这是一个无堆栈的正则表达式。没有花哨的技巧。
它匹配大括号之间的任何内容,例如
{ddhhh13233dddd}
{ddd}
如果至少有一个字符,它匹配大括号之间的任何内容。
()
大括号内有 group {}
。该组应至少有一个[]+
不是右大括号的符号^}
。
这将捕获大括号内的所有内容。
这篇MSDN 文章可以更详细地解释它。