gpt4 book ai didi

python - 试图在 python 中捕获一个大的多行 block

转载 作者:太空宇宙 更新时间:2023-11-04 08:11:37 25 4
gpt4 key购买 nike

我是 python 的新手,在捕捉多行文本 block 时遇到问题在运行 python 的树莓派上。

我正在尝试捕捉 HELLO 和 WORLD 之间的多行文本。

这个例子抛出错误AttributeError: 'NoneType' 对象没有属性 'group'

linestring = """
TEST TEST HELLO
TEST TEST PIZZA
TEST TEST WORLD
TEST TEST
"""

print(linestring)

m = re.search('HELLO(.*)WORLD', linestring)
print(m.group(1))

最佳答案

您可以使用:

m = re.search(r'HELLO([\s\S]*?)WORLD', linestring)

那是因为 . 默认不匹配换行符。或者使用 re.DOTALL标志:

m = re.search(r'HELLO(.*?)WORLD', linestring, re.DOTALL)

这导致 . 匹配换行符。

请注意,我使用了惰性量词来代替:

linestring = """
TEST TEST HELLO
TEST TEST PIZZA
TEST TEST WORLD
TEST TEST WORLD
"""

整场比赛的结果:

HELLO
TEST TEST PIZZA
TEST TEST WORLD

代替:

HELLO
TEST TEST PIZZA
TEST TEST WORLD
TEST TEST WORLD

顺便说一句,你也可以使用 (?s) 作为 dotall 标志:

m = re.search(r'(?s)HELLO(.*?)WORLD', linestring)

关于python - 试图在 python 中捕获一个大的多行 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21220972/

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