大家好我有这样的字符串:
example(string1,string2,string3)
我需要提取所有参数。我使用了这个正则表达式^(.*?\()
,但它只检查括号中的文本。
结果我预计会有:
string1
string2
string3
答案 0 :(得分:2)
如果您只有一对牙套,则可以通过以下Regex.Match()
方法直接获取:
string str = "example(string1,string2,string3) and test(string4)"
string[] params = Regex.Match(str, @"\(([^)]*)\)").Groups[1].Value.Split(',');
但是,如果您有多个带有多个大括号的参数,那么您需要先使用MatchCollection
方法获取Regex.Matches()
,然后在循环中迭代它以获取如下所有参数:
string str = "example(string1,string2,string3) and test(string4)"
List<string> params = new List<string>();
MatchCollection collection = Regex.Matches(str, @"\(([^)]*)\)");
for (int i = 0; i < collection.Count; i++)
{
params.AddRange(collection[i].Groups[1].Value.Split(',').ToList());
}
答案 1 :(得分:1)
试试这个..
string[] result = str.TrimStart(@"example(").TrimEnd(@")").Split(",");
结果数组将是
string1
string2
string3
答案 2 :(得分:1)
您可以使用以下正则表达式:
\((?:(?<param>[\w\d]+)[,\s]*)+\)
结果:
所以你有参数作为第一组的捕获(名为param
)。