I取一个字符串,如"4 +5+(7-9)+ 8“,并试图在括号上拆分,得到包含4+ 5,(7-9),+ 8的列表。所以我使用下面的regex字符串。但是它给了我4+ 5,( 7-9 ),7-9,+ 8,希望这只是简单的事情。谢谢。
List<string> test = Regex.Split("4 + 5 + ( 7 - 9 ) + 8", @"(\(([^)]+)\))").ToList();
发布于 2014-05-29 20:21:05
删除正则表达式中的额外括号:
(\(([^)]+)\)) // your regex
( ) // outer parens
\( \) // literal parens match
( ) // extra parens you don't need
[^)]+ // one or more 'not right parens'
额外的父母创建了一个匹配的‘内部文字父母’,这是额外的7 - 9
你看到。
所以你应该:
@"(\([^)]+\))"
发布于 2014-05-29 20:23:31
List<string> test = Regex.Split("4 + 5 + ( 7 - 9 ) + 8", @"(\([^)]+\))").ToList();
https://stackoverflow.com/questions/23942217
复制相似问题