拆分字符串并选择包含两组括号的中间部分

时间:2016-02-16 14:25:32

标签: c# .net string winforms

据我所知选择字符串的一部分,我们使用split。例如,如果node1.Texttest (delete) if we choose delete

string b1 = node1.Text.Split('(')[0];

那么这意味着我们选择了test,但如果我想从delete中选择node1.Text,我该怎么办?

更新

另一个问题是,当字符串中有两组括号时,如何针对delete?例如,字符串是test(2) (delete) - if we choose delete

3 个答案:

答案 0 :(得分:0)

如果您的字符串总是 xxx(yyy)zzz格式,则可以添加)字符,然后将其拆分并获取第二项;

var s = "test (delete) if we choose delete";
string b1 = s.Split(new[] { '(', ')' })[1];

答案 1 :(得分:0)

string tmp = node1.Text.Split('(')[1];
string final = tmp.Split(')')[0];

也有可能。

使用索引[x],您可以在字符前后分割原始字符串的字符串部分。如果角色多次出现,那么你得到的字符串会有更多的部分。

答案 2 :(得分:0)

您也可以使用正则表达式,然后只删除括号:

resultString = Regex.Match(yourString, @"\((.*?)\)").Value.
               Replace("(", "").Replace(")", "");

或更好:

Regex.Match(yourString, @"\((.*?)\)").Groups[1].Value;

如果要在括号中提取多个字符串:

List<string> matches = new List<string>();
var result = Regex.Matches(yourString, @"\((.*?)\)");
foreach(Match x in result)
      matches.Add(x.Groups[1].Value.ToString());