我如何正则表达式多个项目在一个单一的字符串c#

本文关键字:一个 单一 字符串 正则表达式 项目 | 更新日期: 2023-09-27 18:18:53

我的字符串格式如下:

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

我希望能够获取item1, item2, item3等

我正在尝试下面的grep表达式:

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

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

我做错了什么?

我如何正则表达式多个项目在一个单一的字符串c#

您需要使用非贪婪量词,像这样:

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