正则表达式贪婪模式中的非贪婪模式

左心房为你撑大大i 提交于 2020-03-26 09:02:36

这两天再写一个内部的统计,需要提取来自于其它搜索的关键字。

正则表达式:q=(.*?)&

需要提取的内容:http://so.360.cn/s?ie=utf-8&src=hao_search&q=%E6%83%A0%E5%B7%9E%E4%B8%BD%E5%A3%B0&ab

 

匹配的内容:%E6%83%A0%E5%B7%9E%E4%B8%BD%E5%A3%B0

 

解释:(.*? )其中?的作用,他的作用就是勉强模式重复前面的字符,什么意思呢?就是如果我用(.*a)去匹配aaaaaaa字符串的结果就是(aaaaaaa)源字符串这叫贪婪模式,如果用(.*?a)去匹配aaaaaaa的话他就会先匹配第一a,然后是第二个a,然后是第三个a…….这就叫勉强模式匹配有的地方也叫懒惰模式匹配。通俗一点(大家都喜欢通俗的解释,呵呵)就是前者是从后往前去匹配尽可能多的字符,而后者是从前往后匹配

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!