Regex 使用正则表达式在括号上循环

Regex 使用正则表达式在括号上循环,regex,regex-group,Regex,Regex Group,正则表达式提取99%的期望结果 这是我的台词: 客户服务代表(CS)(TM PM*)** *可以有更多的参数。示例(TM PM TR)等 **可以有更多的括号。示例(TM PM)(RI)(AB CD)等 除了第一个括号(在本例中为CS)即组1外,我可以在组2中的括号内有任意数量的括号和任意数量的参数 我的尝试得到了期望的结果,但有括号 (\(.*?\))\s*(\(.*?\).*) 我的结果是: 我期望的结果是: group 1 : CS group 2 : if gg yiy rt jfj

正则表达式提取99%的期望结果

这是我的台词:

客户服务代表(CS)(TM PM*)**

  • *可以有更多的参数。示例(TM PM TR)等

  • **可以有更多的括号。示例(TM PM)(RI)(AB CD)等

  • 除了第一个括号
    (在本例中为CS)
    即组1外,我可以在组2中的括号内有任意数量的括号和任意数量的参数

    我的尝试得到了期望的结果,但有括号

    (\(.*?\))\s*(\(.*?\).*)
    
    我的结果是:

    我期望的结果是:

    group 1 : CS
    group 2 : if gg yiy rt jfjfj jhfjh uigtu
    
    我需要从结果中删除这些括号的帮助

    我的尝试:

    \(.*?)\s*\(.*?).*)

    这让我


    有人能帮我吗?我还需要移除第2组的所有支架。我已经做了很长时间了,但想不出办法。谢谢。

    这里有一种方法使用字符串拆分和基本字符串函数:

    string input = "(CS) (if gg yiy rt) (jfjfj) (jhfjh uigtu)";
    string[] parts = Regex.Split(input, "\\) \\(");
    string grp1 = parts[0].Replace("(", "");
    parts[0] = "";
    parts[parts.Length - 1] = parts[parts.Length - 1].Replace(")", "");
    string grp2 = string.Join(" ", parts).Trim();
    
    Console.WriteLine(grp1);
    Console.WriteLine(grp2);
    
    CS
    if gg yiy rt jfjfj jhfjh uigtu
    

    无法使用单个匹配操作匹配文本的不相交部分。当您需要重复组时,甚至无法使用替换方法来捕获组

    您需要一个后处理步骤来从组2值中删除

    因此,在使用当前方法获得匹配项后,使用

    Group2value = Group2value.Replace("(", "").Replace(")", "");
    

    无法使用单个匹配操作匹配文本的不相交部分。当您需要重复组时,甚至无法使用替换方法来捕获组。您需要第二个后处理步骤来从组2值中删除
    。因此,您是否建议我在代码中处理后处理步骤?您使用的是什么编程语言?是的,您没有任何其他选项。某种类型的
    Group2value=Group2value.Replace(“,”).Replace(“),”)
    将解决这个问题。@TimBiegeleisen:.NET C#mvc以显示上述脚本的工作情况。