python正则表达式如何用已知字符串(如"aaa")替换文件中匹中的分组内容,不是匹中的全部,而是其中一个组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python正则表达式如何用已知字符串(如"aaa")替换文件中匹中的分组内容,不是匹中的全部,而是其中一个组相关的知识,希望对你有一定的参考价值。
s = r'1234567890'
RE = re.compile(r'34(\d*)78')
如果直接用sub方法:RE.sub("aaa",s)将得到结果:12aaa90
而我想得到:1234aaa7890
请大神指点。。。
s = '1234567890'
pattern = re.compile(r'(34)(\d+)(78)')
print(pattern.sub(r'\1aaa\3',s))
把两边的也加括号,替换的时候加上 \1 \3就行 参考技术A 从你的描述中,感觉是要替换5,6两个数,还是要替换34和78之间的数,
如果是要替换5,6两个数,正则大概这样:r"34[56]*78"
如果是要替换34和78之间的数,正则大概这样r"34[12569]*78"
还是我理解错了,你说说,最近在看正则,呵呵追问
我的目的是替换xx和yy之间的所有内容。而xx和yy不要改变。我的问题不是怎么写正则表达式,我是不会使用替换方法。
参考技术B 需替换的字符串,可以用()进行分组;然后替换的时候,可以用\1这样的方式调用。
用你的需求举个例子:
首先把你的字符串进行分组,(1234)(56)(7890)
然后,re.sub(pt,r'\1aaa\3',s)
就可以了,相当于替换的时候,用\1代表保留第1个括号的内容,然后\3保留第3个括号内容,中间插入你想要的字符串
以上是关于python正则表达式如何用已知字符串(如"aaa")替换文件中匹中的分组内容,不是匹中的全部,而是其中一个组的主要内容,如果未能解决你的问题,请参考以下文章