此正则表达式<li>.*end
不适用于以下文字,我做错了什么?
文本
<li>asdsadasd
adssadasdasdasdas
asdasdasdasdasdad
adsasdasdasdasd
dasdadadsadadasdasdasdasda
end
有人可以帮我写一个正则表达式来获取所有文本吗?
答案 0 :(得分:4)
默认情况下,.
与换行符不匹配。您必须传递DOTALL
标志...
regex = re.compile('<li>.*end', re.DOTALL)
或等效地,
regex = re.compile('<li>.*end(?S)')
修改:不是re.MULTILINE
标记 - 它会改变$
和^
的行为。
答案 1 :(得分:2)
您必须从re
选择多行选项:
import re
expr = re.comile("<li>.*end", re.M)
考虑到评论和Dietrich的回答,如果您需要$
和^
的行为相同,请使用re.DOTALL
代替re.M/re.MULTILINE
。