1

我的字符串是以下格式:

"[Item1],[Item2],[Item3],..."

我希望能够获得 item1、item2、item3 等。

我正在尝试以下 grep 表达式:

MatchCollection matches = Regex.Matches(query, @"\[(.*)\]?");

但是,它不是匹配每个项目,而是得到"item1][item2][..."

我做错了什么?

4

1 回答 1

5

您需要使用非贪婪量词,如下所示:

MatchCollection matches = Regex.Matches(query, @"\[(.*?)\]?");

或者排除字符的字符类],像这样:

MatchCollection matches = Regex.Matches(query, @"\[([^\]]*)\]?");

然后,您可以像这样访问您的比赛:

matches[0].Groups[1].Value // Item1
matches[1].Groups[1].Value // Item2
matches[2].Groups[1].Value // Item3
于 2013-06-18T22:01:35.447 回答