为了账号安全,请及时绑定邮箱和手机立即绑定

大家好,怎么消除括号和括号里面的内容,正则

/ 猿问

大家好,怎么消除括号和括号里面的内容,正则

为了消除微信公众号内文章里面的(内容),我的python代码

import re
regex = re.compile("^\(.*?\)&")
st='''入围者需要考虑从摩天大楼的节能(http://www.re-thinkingthefuture.com/rtfa2017-office-building-concept/xo-skeleton-eyp-architecture-and-engineering/)到幼儿园设计(http://www.re-thinkingthefuture.com/rtfa2017-institutional-built/amanenomori-nursery-school-aisaka-architects-atelier/)的所有问题,一些方案的创意从自然出发,比如珊瑚礁、肥皂泡(http://www.re-thinkingthefuture.com/rtfa2017-public-building-concept/resurrection-reinterpretation-of-an-architectural-icon-in-an-indian-context-deepankar-d-sharma/)等,来创造出更节能而高效的结构。'''
matchArray = regex.sub('',st)
print(matchArray)

上面的代码没效果

https://img3.mukewang.com/5b079721000198b710980216.jpg

那么怎么写python的正则表达式才能消除括号和括号里面的内容,期待的效果如下:

入围者需要考虑从摩天大楼的节能到幼儿园设计的所有问题,一些方案的创意从自然出发,比如珊瑚礁、肥皂泡等,来创造出更节能而高效的结构。


查看完整描述

1 回答

已采纳
?
FightingBoy
import re
pattern = re.compile('\(.*?\)')
result = re.sub(pattern,'',st)


查看完整回答
反对 回复 2018-05-26
  • 无无法师
    无无法师
    非常感谢,还希望能问问你?的原理。我写成pattern = re.compile('\(.*\)')的时候两个()中间的字符串也会被替换掉,比如s(s)fg(s)s变成了ss,加了?写成pattern = re.compile('\(.*?\)')就不会把中间的字符串连累替换掉了,结果是sfgs
  • FightingBoy
    FightingBoy
    你去查一下正则的贪婪匹配和非贪婪匹配就明白了。

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信