我有字符串
string s="someMethod(999,'xyz')"
我想把999和xyz带到数组中。 什么是最好的方式而不是用'('先分开它 并通过','然后通过'\''
答案 0 :(得分:2)
您不需要使用正则表达式。
您可以使用String.Substring
,String.IndexOf
和String.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;
如果您不确定是否会有单引号,请使用'?
代替'