Linux | 正则表达式贪婪与非贪婪模式

  • 内容
  • 相关

之前做程序的时候看到过正则表达式的贪婪与非贪婪模式,今天用的时候就想不起来了,现在这里总结一下,以备自己以后用到注意。

1.什么是正则表达式的贪婪与非贪婪匹配

  如:String str="abcddc";

     Patter p="ab.*c";

  贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcddc(ab.*c)

  非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab.*c)

2.编程中如何区分两种模式

  默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。

  量词:{m,n}mn

    *:任意多个

    +:一个到多个

    ?:0或一个

 

假设有如下内容,我想取出其中的<a href地址,则

<div class="meta clearfix"><span title="bfs"><em></em>108
  </span><span title="fsf"><em></em>0
  </span><span title="cjsj"><em></em>10-3
  </span></div></div></li><li data-aid="1376" class="list-item clearfix fakeDanmu-item"><a href="//www.xxxxx.com/video/sdfsf1376" target="_blank"><img src="//sdfsfsf.jpg" alt="ssfsfsf"><span></span><div><!----><!----><!----></div></a><div><div><a href="//www.xxxxx.com/video/sdfsf1376" target="_blank" title="fafsafdadad">adadadada)</a></div><div title="sfsfsf
</div>
<div class="meta clearfix"><span title="bfs"><em></em>109
  </span><span title="fsf"><em></em>0
  </span><span title="cjsj"><em></em>10-4
  </span></div></div></li><li data-aid="1377" class="list-item clearfix fakeDanmu-item"><a href="//www.xxxxx.com/video/sdfsf1377" target="_blank"><img src="//sdfsfsf.jpg" alt="ssfsfsf"><span></span><div><!----><!----><!----></div></a><div><div><a href="//www.xxxxx.com/video/sdfsf1377" target="_blank" title="fafsafdadad">adadadada)</a></div><div title="sfsfsf
</div>

命令或正则表达式如下:

管理员设置 回复 可见隐藏内容

 您阅读这篇文章共花了:

上一篇:Windows | 关于批处理密文显示密码的解决问题

下一篇:Linux | yum update与upgrade的区别

本文标签:    

版权声明:本文依据CC-BY-NC-SA 3.0协议发布,若无特殊注明,本文皆为《fishyoung》原创,转载请保留文章出处。

本文链接:Linux | 正则表达式贪婪与非贪婪模式 - http://www.fishyoung.com/post-269.html