美文网首页
贪婪与非贪婪

贪婪与非贪婪

作者: wyude | 来源:发表于2016-10-29 21:23 被阅读0次

abcdefgdogcat

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

今天遇到的就是使用这句匹配图片链接时出的问题http:.+\\.jpg
原因是网页img标签是这样的
<img src="http://67.media.tumblr.com/a14f4a939315db6bd9fb6abf953db1d4/tumblr_ofss6etMDT1r2xjmjo1_1280.jpg" data-highres="http://67.media.tumblr.com/a14f4a939315db6bd9fb6abf953db1d4/tumblr_ofss6etMDT1r2xjmjo1_1280.jpg" />
这样每次取的结果都是
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次以上,但尽可能少重复

相关文章

  • 贪婪与非贪婪

    abcdefgdogcat 贪婪,就是尽可能多的匹配。例如 a.*d匹配的就是abcdefgd,如果后面还有那么匹...

  • 贪婪与非贪婪匹配

    1.什么是正则表达式的贪婪与非贪婪匹配 贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使...

  • 正则表达式高级使用

    一,贪婪与非贪婪 贪婪:尽可能多的匹配 非贪婪:尽可能少的匹配 非贪婪符可以用在*,?,+的后面 *? 重复1次 ...

  • 006.聊聊 JavaScript 正则表达式 下卷

    有点复杂,是转载的文章 贪婪模式与非贪婪模式讲解 Javascript中的正则贪婪与非贪婪模式的区别是: 被量词修...

  • 贪婪非贪婪

  • JavaScript 正则表达式( 匹配网页的图片地址)

    正则表达式 - 元字符 贪婪模式与非贪婪模式 贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为;贪婪模式 在...

  • Day18学习总结-正则表达式和Pygame

    贪婪与非贪婪 非贪婪:在正则中控制匹配不确定次数的符号后边可以加?,来表示尽可能少的匹配贪婪:在贪婪的时候,匹配是...

  • 贪婪模式与非贪婪模式

    下面代码输出什么? 为什么? 改写代码,让其输出hunger, world. 补全如下正则表达式,输出字符串中的注...

  • 039 Python语法之正则表达式

    正则的基本语法 贪婪与非贪婪模式 Python中的数量词默认是贪婪模式的,总是默认尝试匹配更多的字符,非贪婪模式则...

  • javascript正则表达式

    什么是贪婪模式和非贪婪模式? 贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功...

网友评论

      本文标题:贪婪与非贪婪

      本文链接:https://www.haomeiwen.com/subject/tmpyuttx.html