小编典典

Python正则表达式,在多行上匹配模式..为什么不起作用?

python

我知道进行解析时,我应该理想地删除所有空格和换行符,但是我只是为了快速解决此问题,所以不知道为什么它不起作用。带有“ ####
1”之类的包装器的文档,并尝试基于此进行解析,但是无论我尝试如何,它都无法正常工作,我认为我正确地使用了多行。

这根本不会返回任何结果:

string='
####1
ttteest
####1
ttttteeeestt

####2

ttest
####2'

import re
pattern = '.*?####(.*?)####'
returnmatch = re.compile(pattern, re.MULTILINE).findall(string)
return returnmatch

阅读 213

收藏
2020-12-20

共1个答案

小编典典

尝试re.findall(r"####(.*?)\s(.*?)\s####", string, re.DOTALL)re.compile当然也可以)。

此正则表达式将返回包含节号和节内容的元组。

对于您的示例,这将返回[('1', 'ttteest'), ('2', ' \n\nttest')]

(顺便说一句:您的示例无法运行,对于多行字符串,请使用'''"""

2020-12-20