2

我有字符串

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

我想将 999 和 xyz 放入数组中。什么可能是最好的方法,而不是先用'('和','然后再用'\''分割它

4

2 回答 2

2

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

您可以使用String.Substring,String.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.

于 2013-06-12T12:09:26.533 回答
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;

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

于 2013-06-12T12:05:21.827 回答