gpt4 book ai didi

python re sub 与 findall

转载 作者:行者123 更新时间:2023-11-30 23:18:56 25 4
gpt4 key购买 nike

我的代码:

import urllib
import re
xml = urllib.urlopen('url').read()

我有兴趣从 xml 文件中删除某些标签及其内容,因此,我尝试使用正则表达式。

例如:

re.findall(r'<fig(.*?)</fig>', xml, re.DOTALL)

返回匹配项且非空。

但是,

re.sub(r'<fig(.*?)</fig>', ' ', xml, re.DOTALL)

不执行任何操作,xml 字符串未更改。我很困惑为什么,请帮忙。

最佳答案

re.sub的第四个参数不是flags,而是countsre.DOTALL 的值是 16(至少在 Python 2.7/3.4 中)。因此 re.sub(.., re.DOTALL) 只会替换 16 次。

指定 flags 作为关键字参数将解决您的问题:

re.sub(r'<fig(.*?)</fig>', ' ', xml, flags=re.DOTALL)

除此之外,re.sub 返回替换的字符串,而不是就地更改第三个参数。确保您已分配回函数的返回值。

关于python re sub 与 findall,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26428244/

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