日期:2014-05-17  浏览次数:20680 次

求大神帮忙写个正则表达式
给出一段字符串,要去除中间的括号部分的内容,包括中文和英文的。我这边有一个:
 Regex.Replace(strSM, @"\([^\(]*\)", "")
但是它只能去除英文括号的内容。如果要实现去除中英文的括号内容,应该如何做呢。
如果有若干个括号,去除从括号开始到括号结束的内容呢,比如:ab(c)de(aaa)fg——>abfg
正则表达式

------解决方案--------------------
Regex.Replace(strSM, @"\(.*\)", "")
------解决方案--------------------
Regex.Replace(strSM, @"(\(
------解决方案--------------------
()[^\(]*(\)
------解决方案--------------------
))", "")
------解决方案--------------------
要严密的话,要玩平衡组
------解决方案--------------------
http://blog.csdn.net/zm2714/article/details/7946437
文中给出的\(((?<Open>\()
------解决方案--------------------
(?<-Open>\))
------解决方案--------------------
[^()])*(?(Open)(?!))\)
加上中文括号
[(\(]((?<Open>[(\(])
------解决方案--------------------
(?<-Open>[)\)])
------解决方案--------------------
[^(())])*(?(Open)(?!))[)\)]
------解决方案--------------------
Regex.Replace(strSM, @"(?s)[((].*[))]", "")