-1

此正则表达式<li>.*end不适用于以下文本,我做错了什么?

文本

    <li>asdsadasd
adssadasdasdasdas
asdasdasdasdasdad
adsasdasdasdasd
dasdadadsadadasdasdasdasda
end

有人可以帮我写一个正则表达式来获取所有文本吗?

4

2 回答 2

4

默认情况下,.不匹配换行符。你必须通过DOTALL国旗...

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

或者等价地,

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

编辑:不是re.MULTILINE标志——改变$and的行为^

于 2013-01-19T18:15:40.067 回答
2

您必须从以下选项中选择多行选项re

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

考虑到评论和迪特里希的回答,如果您需要 和 的行为$相同^,请使用re.DOTALL代替re.M/re.MULTILINE.

于 2013-01-19T18:15:13.307 回答