如何用正则表达式提取括号中DOG对应的关联值?
解决正则提取DOG对应关联值的问题
你的原正则表达式\(DOG,*?\)无法正常工作的原因是:它试图匹配(DOG后接任意个逗号(甚至0个),然后直接匹配右括号,但目标字符串里DOG后是,C),逗号后还有字符C,所以这个正则根本匹配不到目标内容。
正确的解决方案
使用带捕获分组的正则表达式,精准定位DOG后的关联值:
Match match = Regex.Match(rspData, @"\(DOG,([^)]+)\)"); if (match.Success) Console.WriteLine(match.Groups[1].Value); // 输出结果为C
正则说明
\(DOG,:匹配字面量(DOG,,定位到目标项的起始部分([^)]+):捕获分组,匹配一个或多个非右括号的字符,也就是我们需要的关联值(这里就是C)\):匹配闭合的右括号,确保只匹配(DOG,C)这个完整项
如果你的关联值固定是单个字母,也可以用更精确的\(DOG,([A-Z])\),但[^)]+的通用性更强,能适配关联值为多个字符的场景。
内容的提问来源于stack exchange,提问作者Anu Budagumpi
相关产品推荐
相关产品推荐

