正则表达式根据多次检查获取值

时间:2013-06-12 11:58:47

标签: c# regex string

我有字符串

string s="someMethod(999,'xyz')"

我想把999和xyz带到数组中。 什么是最好的方式而不是用'('先分开它 并通过','然后通过'\''

2 个答案:

答案 0 :(得分:2)

您不需要使用正则表达式。

您可以使用String.SubstringString.IndexOfString.Split等方法;

string s = "someMethod(999,'xyz')";
string BetweenBrackets = s.Substring(s.IndexOf("(") + 1, s.IndexOf(")") - s.IndexOf("(") - 1);
string[] array = BetweenBrackets.Split(new char[] { ',', '\'' }, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine(array[0]); //999
Console.WriteLine(array[1]); //xyz

这是DEMO

答案 1 :(得分:0)

试试这个正则表达式:

^.+?\((.+?),'(.+?)'\)$

$ 1:999, 2美元:xyz

完整代码:

Regex r = new Regex(@"^.+?\((.+?),'(.+?)'\)$");
string[] parameters = new string[2];
parameters[0]=r.Match(s).Groups[1].Value;
parameters[1]=r.Match(s).Groups[2].Value;

如果您不确定是否会有单引号,请使用'?代替'