Regex 使用正则表达式在括号上循环
正则表达式提取99%的期望结果 这是我的台词: 客户服务代表(CS)(TM PM*)**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
(在本例中为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以显示上述脚本的工作情况。