用Python匹配HTML tag的时候,<.*>
和<.*?>
有什么区别?
?
在一般正则表达式里的语法是指得"零次或一次匹配左边的字符或表达式"相当于{0,1}
而当?
后缀于*,+,?,{n},{n,},{n,m}
之后,则代表非贪心匹配模式,也就是说,尽可能少的匹配左边的字符或表达式,这里是尽可能少的匹配.
(任意字符)
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3.1k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.4k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
第一种写法是,尽可能多的匹配,就是匹配到的字符串尽量长,第二中写法是尽可能少的匹配,就是匹配到的字符串尽量短。
比如
<tag>tag>tag>end
,第一个会匹配<tag>tag>tag>
,第二个会匹配<tag>
,如果要匹配到二个>
,就只能自己写了