有人能解释一下这个正则表达式会检查什么吗?
Regex x = new Regex("{([^}]+)}");
该程序会查找括号内包含一个或多个非右括号字符 non-}
的{...}
。成功后,程序将{...}
的内容放入第一组捕获中。
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
{ { string str = "Hello"; } str += "x"; }
这样的表达式会使这个正则表达式混淆,所以像 { string str = "}" }
这样的表达式也一样。这是一个无堆栈的正则表达式。没有花哨的技巧。如果在花括号中至少有一个字符,则它匹配花括号之间的任何内容。
花括号{}
内有一个组()
。该组应该至少有一个[]+
符号,该符号不是闭合花括号^}
。
{ddhhh13233dddd}
{ddd}