我的字符串是以下格式:
"[Item1],[Item2],[Item3],..."
我希望能够获得 item1、item2、item3 等。
我正在尝试以下 grep 表达式:
MatchCollection matches = Regex.Matches(query, @"\[(.*)\]?");
但是,它不是匹配每个项目,而是得到"item1][item2][..."
我做错了什么?
您需要使用非贪婪量词,如下所示:
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