Linux | 正则表达式贪婪与非贪婪模式
之前做程序的时候看到过正则表达式的贪婪与非贪婪模式,今天用的时候就想不起来了,现在这里总结一下,以备自己以后用到注意。
1.什么是正则表达式的贪婪与非贪婪匹配
如:String str="abcddc";
Patter p="ab.*c";
贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcddc(ab.*c)。
非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab.*c)。
2.编程中如何区分两种模式
默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。
量词:{m,n}:m到n个
*:任意多个
+:一个到多个
?: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>
命令或正则表达式如下:
管理员设置 回复 可见隐藏内容
您阅读这篇文章共花了: