正则表达式拆分括号得到双结果

本文关键字:结果 拆分 正则表达式 | 更新日期: 2023-09-27 18:05:53

我取一个字符串,如"4 + 5 +(7-9)+ 8",并试图在括号上分割,以获得一个包含4 + 5,(7-9),+ 8的列表。所以我使用下面的正则字符串。结果是4 + 5(7-9)7-9 + 8。希望这只是简单的事情。谢谢。

 List<string> test = Regex.Split("4 + 5 + ( 7 - 9 ) + 8", @"('(([^)]+)'))").ToList();

正则表达式拆分括号得到双结果

删除正则表达式中额外的括号:

('(([^)]+)')) // your regex
(           ) // outer parens
 '(       ')  // literal parens match
   (     )    // extra parens you don't need
    [^)]+     // one or more 'not right parens'

额外的父级为'在字面父级内部'创建匹配,这是您看到的额外的7 - 9

所以你应该有:

@"('([^)]+'))"
List<string> test = Regex.Split("4 + 5 + ( 7 - 9 ) + 8", @"('([^)]+'))").ToList();