gpt4 book ai didi

regex - 基本 Python 正则表达式 : re. DOTALL *not* 匹配新行

转载 作者:行者123 更新时间:2023-12-04 23:23:34 24 4
gpt4 key购买 nike

我想将所有出现的 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

这是输出:
BhiB
A
hiA
A
hiA
A
hiA

什么给出了,我怎样才能用 'B\nhiB' 替换 'A\nhiA'?

最佳答案

re.sub() 的第四个参数是 count(要执行的最大替换操作数)。 re.DOTALL16 ,所以你在一个意想不到的地方传递了一个(有效的)参数。


re.sub(r'A(?P<text>.*)A','B\g<text>B','A\nhiA', flags=re.DOTALL)

(或将 re.DOTALL 放在位置五):
re.sub(r'A(?P<text>.*)A','B\g<text>B','A\nhiA', 0, re.DOTALL)

关于regex - 基本 Python 正则表达式 : re. DOTALL *not* 匹配新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17793839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com