私は文字列を持っています
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;
一重引用符があるかどうかわからない場合は、'?
代わりに使用してください'