2

私は文字列を持っています

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

999 と xyz を配列に取りたいと思います。最初に '(' で分割し、',' で分割し、次に '\'' で分割する代わりに、可能な限り最善の方法は何ですか?

4

2 に答える 2

2

そのために正規表現を使用する必要はありません。

String.SubstringString.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.

于 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 に答える