我采用像“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
。
所以你应该:
@"(\([^)]+\))"
关于c# - 正则表达式在括号上分割得到双重结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23942217/