根据多个分隔符获取部分字符串?

时间:2013-09-26 20:12:39

标签: c# string split delimiter

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

例如,来自以下字符串:

"abc(def)ghi"

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

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

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

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

4 个答案:

答案 0 :(得分:7)

正则表达式可以提供帮助

string input = "abc(def)ghi";
var def = Regex.Match(input, @"\((.+?)\)").Groups[1].Value;

答案 1 :(得分:1)

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

答案 2 :(得分:1)

您可以传入一组字符以进行拆分。

像这样:

string s = "abc(def)ghi";
char[] chars = new char[] { '(', ')' };
string[] parts = s.Split(chars);

答案 3 :(得分:0)

另一种选择。简单,双重拆分

        string s = "abc(def)ghi";
        string []first = s.Split('(');
        string[] second = first[1].Split(')');
        Console.WriteLine(second[0]);
        Console.ReadLine();