为包含多个字符的文本编写正则表达式\n

2024-10-01 13:37:09 发布

您现在位置:Python中文网/ 问答频道 /正文

这个正则表达式<li>.*end不适用于下面的文本,我做错了什么?你知道吗

文本

    <li>asdsadasd
adssadasdasdasdas
asdasdasdasdasdad
adsasdasdasdasd
dasdadadsadadasdasdasdasda
end

有人能帮我写一个正则表达式来抓取所有的文本吗?你知道吗


Tags: 文本liendasdasdasdasdasdadadssadasdasdasdasadsasdasdasdasddasdadadsadadasdasdasdasdaasdsadasd
2条回答

必须从re中选择多行选项:

import re
expr = re.comile("<li>.*end", re.M)

考虑到评论和Dietrich的回答,如果您需要$^的行为相同,请使用re.DOTALL而不是re.M/re.MULTILINE。你知道吗

默认情况下,.与换行符不匹配。必须传递DOTALL标志。。。你知道吗

regex = re.compile('<li>.*end', re.DOTALL)

或等效地

regex = re.compile('<li>.*end(?S)')

编辑:不是改变$^行为的re.MULTILINE标志。你知道吗

相关问题 更多 >