3

我有一个带括号的字符串,我希望只提取括号内的字符串部分。

例如,从以下字符串:

"abc(def)ghi"

我想得到"def",没有括号。

我已经进行了一些搜索,但到目前为止我发现的最接近的是 String.Split():

string s = "3,2,4,5,6";
string[] words = s.Split(',');

但是 String.Split 一次只需要 1 个分隔符。有没有更好的方法来只抓取括号内的字符串?

4

4 回答 4

7

正则表达式可以在这里提供帮助

string input = "abc(def)ghi";
var def = Regex.Match(input, @"\((.+?)\)").Groups[1].Value;
于 2013-09-26T20:17:12.583 回答
1

您可以拆分多个字符:s.Split("()".ToCharArray()). 不确定这是否适合您,或者正则表达式是否适合。

于 2013-09-26T20:18:14.957 回答
1

您可以传入要拆分的字符数组。

像这样:

string s = "abc(def)ghi";
char[] chars = new char[] { '(', ')' };
string[] parts = s.Split(chars);
于 2013-09-26T20:18:49.697 回答
0

只是另一种选择。简单,双重分裂

        string s = "abc(def)ghi";
        string []first = s.Split('(');
        string[] second = first[1].Split(')');
        Console.WriteLine(second[0]);
        Console.ReadLine();
于 2013-09-26T21:46:13.680 回答