4

有人能解释一下这个正则表达式会检查什么吗

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

5 回答 5

4

它寻找一个里面{...}有一些(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 = "}" }. 这是一个无堆栈的正则表达式。没有花哨的技巧。

于 2013-08-08T08:06:10.823 回答
1

它匹配大括号之间的任何内容,例如 {ddhhh13233dddd} {ddd}

于 2013-08-08T08:09:09.907 回答
1

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

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

于 2013-08-08T08:05:00.710 回答
0

这将捕获大括号内的所有内容。

这篇MSDN 文章可以更详细地解释它。

于 2013-08-08T08:10:04.643 回答
0

这将捕获大括号内的所有内容。

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

http://tinyurl.com/lz3d458

在此处输入图像描述

于 2013-08-08T08:23:58.767 回答