正则表达式 如何 [不替换] 括号中的指定字符

有一段内容,如:反动势力是(烟消云散、再转在、匣介)、类别置顶帖(来哦见好就收)、炒肉可示、需要城我现想把括号外面的"、"替换成"|",而括号里面的不变,即如下效果:反动... 有一段内容,如:

反动势力是(烟消云散、再转在、匣介)、类别置顶帖(来哦见好就收)、炒肉可示、需要城

我现想把括号外面的"、"替换成"|",而括号里面的不变,即如下效果:

反动势力是(烟消云散、再转在、匣介)|类别置顶帖(来哦见好就收)|炒肉可示|需要城

正则表达式该如何写?

主要问题就是括号的转义,如“ [^(\([^、\)]*\))]* ”则会提示 "Too many )'s."等等头疼的问题。

(我试过了几乎所有我所知道的办法也没能成功,希望赐教!)
哇擦!!我本来已经行了,汗...
十分感谢!
补充:
括号是英文.我用表达式时可能打成全角括号了 、(?=[^\)]*(\(|$))
浪费了我三个小时左右的时间!偶滴妈来.要命喏...
展开
 我来答
yes___no
2009-07-14 · TA获得超过3154个赞
知道大有可为答主
回答量:1988
采纳率:100%
帮助的人:2140万
展开全部
用Replace Pioneer处理很轻松,找到")"和"("之间的内容,把"、"替换成"|"就可以了。
需要说明的是,你的括号是中文括号"()"而不是英文括号"()",所以不用转义。

以下是详细步骤:
1. ctrl-o打开待处理txt文件
2. ctrl-h打开replace窗口
* 在Search for pattern下面输入:
"(^|)).*?((|$)"(不包含左右的双引号)
* 在Replace with pattern下面输入:
"replace($match,'、','|')"(不包含左右的双引号)
3. 点击Replace,完成。

****************

另外,这里再给你一个纯正则表达式的版本:
把"、(?=[^)]*((|$))"替换成"|"就可以了。

你也可以在Replace Pioneer的search for pattern输入"、(?=[^)]*((|$))"(无双引号),然后在replace with pattern输入|就可以了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式