贪婪与非贪婪

abcdefgdogcat

  • 贪婪,
    就是尽可能多的匹配。
    例如 a.*d匹配的就是abcdefgd,如果后面还有那么匹配结果很更长,直到遇到.无法匹配的换行符。
  • 非贪婪,
    那就是知足常乐了,取第一次满足的匹配结果。
    那么a.*?d匹配的就是abcd

今天遇到的就是使用这句匹配图片链接时出的问题http:.+\\.jpg
原因是网页img标签是这样的

这样每次取的结果都是
http://67.media.tumblr.com/a14f4a939315db6bd9fb6abf953db1d4/tumblr_ofss6etMDT1r2xjmjo1_1280.jpg" data-highres="http://67.media.tumblr.com/a14f4a939315db6bd9fb6abf953db1d4/tumblr_ofss6etMDT1r2xjmjo1_1280.jpg
查了好半天才知道非贪婪的方式http:.+?\\.jpg


贪婪:
{m,n}:m到n个
*:任意多个
+:一个到多个
?:0或一个

非贪婪:
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复

你可能感兴趣的:(贪婪与非贪婪)