此正则表达式<li>.*end
不适用于以下文本,我做错了什么?
文本
<li>asdsadasd
adssadasdasdasdas
asdasdasdasdasdad
adsasdasdasdasd
dasdadadsadadasdasdasdasda
end
有人可以帮我写一个正则表达式来获取所有文本吗?
此正则表达式<li>.*end
不适用于以下文本,我做错了什么?
文本
<li>asdsadasd
adssadasdasdasdas
asdasdasdasdasdad
adsasdasdasdasd
dasdadadsadadasdasdasdasda
end
有人可以帮我写一个正则表达式来获取所有文本吗?
默认情况下,.
不匹配换行符。你必须通过DOTALL
国旗...
regex = re.compile('<li>.*end', re.DOTALL)
或者等价地,
regex = re.compile('<li>.*end(?S)')
编辑:不是re.MULTILINE
标志——改变$
and的行为^
。
您必须从以下选项中选择多行选项re
:
import re
expr = re.comile("<li>.*end", re.M)
考虑到评论和迪特里希的回答,如果您需要 和 的行为$
相同^
,请使用re.DOTALL
代替re.M/re.MULTILINE
.