正则表达式贪婪模式中的非贪婪模式
这两天再写一个内部的统计,需要提取来自于其它搜索的关键字。
正则表达式: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…….这就叫勉强模式匹配有的地方也叫懒惰模式匹配。通俗一点(大家都喜欢通俗的解释,呵呵)就是前者是从后往前去匹配尽可能多的字符,而后者是从前往后匹配
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步