我希望将所有出现的A ... A转换为B ... B,以获得两个A之间的填充.必须允许填充符包含换行符.我认为re.DOTALL是解决方案.
这是一个python脚本:
import re
tt1 = re.sub(r'A(?P<text>.*)A','B\g<text>B','AhiA')
print tt1
tt1 = re.sub(r'A(?P<text>.*)A','B\g<text>B','A\nhiA')
print tt1
tt1 = re.sub(r'A(?P<text>[.]*)A','B\g<text>B','A\nhiA')
print tt1
tt1 = re.sub(r'A(?P<text>.*)A','B\g<text>B','A\nhiA',re.DOTALL)
print tt1
Run Code Online (Sandbox Code Playgroud)
这是输出:
BhiB
A
hiA
A
hiA
A
hiA
Run Code Online (Sandbox Code Playgroud)
是什么给了,如何用'B \nhiB'代替'A \nhiA'?
第四个参数re.sub()是count(要执行的最大替换操作数).re.DOTALL是的16,所以你在一个意想不到的地方传递一个(有效的)参数.
使用
re.sub(r'A(?P<text>.*)A','B\g<text>B','A\nhiA', flags=re.DOTALL)
Run Code Online (Sandbox Code Playgroud)
(或放在re.DOTALL第五位):
re.sub(r'A(?P<text>.*)A','B\g<text>B','A\nhiA', 0, re.DOTALL)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
901 次 |
| 最近记录: |