求大神帮忙写个正则表达式

Mic_Gary 2013-09-18 08:45:35
给出一段字符串,要去除中间的括号部分的内容,包括中文和英文的。我这边有一个:
 Regex.Replace(strSM, @"\([^\(]*\)", "")
但是它只能去除英文括号的内容。如果要实现去除中英文的括号内容,应该如何做呢。
如果有若干个括号,去除从括号开始到括号结束的内容呢,比如:ab(c)de(aaa)fg——>abfg
...全文
126 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
q107770540 2013-09-18
  • 打赏
  • 举报
回复
Regex.Replace(strSM, @"(?s)[((].*[))]", "")
  • 打赏
  • 举报
回复
http://blog.csdn.net/zm2714/article/details/7946437 文中给出的\(((?<Open>\()|(?<-Open>\))|[^()])*(?(Open)(?!))\) 加上中文括号 [(\(]((?<Open>[(\(])|(?<-Open>[)\)])|[^(())])*(?(Open)(?!))[)\)]
  • 打赏
  • 举报
回复
要严密的话,要玩平衡组
Mic_Gary 2013-09-18
  • 打赏
  • 举报
回复
引用 1 楼 sxldfang 的回复:
Regex.Replace(strSM, @"\(.*\)", "")
引用 4 楼 Mic_Gary 的回复:
[quote=引用 2 楼 Chinajiyong 的回复:] Regex.Replace(strSM, @"(\(|()[^\(]*(\)|))", "")
如果改成去除从头到尾的括号中的内容呢?[/quote] 你们的答案结合一下就是我要的结果了
Mic_Gary 2013-09-18
  • 打赏
  • 举报
回复
引用 2 楼 Chinajiyong 的回复:
Regex.Replace(strSM, @"(\(|()[^\(]*(\)|))", "")
如果改成去除从头到尾的括号中的内容呢?
Mic_Gary 2013-09-18
  • 打赏
  • 举报
回复
引用 1 楼 sxldfang 的回复:
Regex.Replace(strSM, @"\(.*\)", "")
如果改成包括中文的呢
EnForGrass 2013-09-18
  • 打赏
  • 举报
回复
Regex.Replace(strSM, @"(\(|()[^\(]*(\)|))", "")
sxldfang 2013-09-18
  • 打赏
  • 举报
回复
Regex.Replace(strSM, @"\(.*\)", "")
Mic_Gary 2013-09-18
  • 打赏
  • 举报
回复
引用 8 楼 q107770540 的回复:
Regex.Replace(strSM, @"(?s)[((].*[))]", "")
谢谢大侠,好厉害,我连看都看不懂,怎么做到的?

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧