Python 正则表达式替换问题

有一段文本:'(来源:新浪网)一、题材前瞻 1、MicroLED显示技术突破量产关卡商用进程有望进一步加速、国星光电、华灿光电。 (来源:中国网财经)'

需要把“(来源:新浪网)”、“ (来源:中国网财经)”分别替换成新浪网、中国网财经,用正则替换

目标文本:'新浪网一、题材前瞻 1、MicroLED显示技术突破量产关卡商用进程有望进一步加速、国星光电、华灿光电。中国网财经'

用re.sub的话,两个都会被替换成一样的,像这样了:
' 新浪网 一、题材前瞻 1、MicroLED显示技术突破量产关卡商用进程有望进一步加速、国星光电、华灿光电。 新浪网 '
事实上最后的新浪网应该是 中国网财经 才对

阅读 4.2k
3 个回答

clipboard.png
正则表法师\(.*:(.*)\)(.*)\(.*:(.*)\),直接取出第一组第二组第三组进行替换,上图是效果图,看一下是否满足您的需求。

一楼的正则其实有些问题,如果正文中其他地方出现了)也会被替换掉成空格。
二楼用分组的方法,正解。

看你的这个其实就是匹配(来源: 任意字符 )这个字符串,然后删除(来源:)
那有一个很简单的写法:\(来源:|\)

python的话这么写:

import re

if __name__ == '__main__':
    str1 = '(来源:新浪网)一、题材前瞻 1、MicroLED显示技术突破量产关卡商用进程有望进一步加速、国星光电、华灿光电。 (来源:中国网财经)'
    str2 = re.sub('\(来源:|\)', '', str1)
    print(str1)
    print(str2)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题