我有字符串
string s="someMethod(999,'xyz')"
我想将 999 和 xyz 放入数组中。什么可能是最好的方法,而不是先用'('和','然后再用'\''分割它
您不需要为此使用正则表达式。
您可以使用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 美元: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;
如果您不确定是否会有单引号,请使用'?
而不是'