正则表达式中最短匹配模式的用法浅析

 更新时间:2017年07月17日 09:11:18   作者:jackPan  
最短匹配应用于:假如有一段文本,你只想匹配最短的可能,而不是最长。下面这篇文章主要给大家介绍了关于正则表达式中最短匹配模式用法的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

最近有一次想用正则表达式从网页里面抓取一些东西出来,内容不复杂却出现不少问题。下面话不多说,来一起看看详细的介绍:

当我们用正则表达式去匹配一个标签的首尾的时候,比如匹配 <h1>hello world</h1> 中的 h1 的开始和闭合标签

可能很多人会这样写

/<.*h1>/g

但是这样真的可以吗?

因为 * 匹配符是匹配前面一个字符的零到多个,而且它是贪婪匹配的

所以你得到的就会是下面的结果了。


显然这并不是我们想要的,那么怎么把贪婪匹配换成最小匹配呢,

/<.*?h1>/g

上面的写法就可以了,如下图:


其实原理应该很简单,因为 ? 也是贪婪匹配,并且只能匹配0到1个,

所以它会匹配到第一个的时候就结束了,从而阻止了 * 的匹配多个的贪婪。

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:http://tools.jb51.net/regex/create_reg

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript正则表达式技巧大全》、《JavaScript替换操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript中json操作技巧总结》、《JavaScript错误与调试技巧总结》及《JavaScript数学运算用法总结

总结

以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • java 字符串匹配函数

    java 字符串匹配函数

    java去掉字符串中匹配的字符串
    2008-09-09
  • 正则 捕获组(capture group)

    正则 捕获组(capture group)

    捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或手动命名的组里,方便后面引用
    2009-07-07
  • Java正则表达式学习教程

    Java正则表达式学习教程

    这篇文章主要是关于Java正则表达式的学习教程,本教程的目的在于帮助你驾驭Java正则表达式,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • 正则表达式匹配0-10的正整数以及使用细节

    正则表达式匹配0-10的正整数以及使用细节

    我们可以使用正则表达式来代表一些我们希望的字符串类型,比如正整数,下面这篇文章主要给大家介绍了关于正则表达式匹配0-10的正整数以及使用细节的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • python 正则表达式 re.sub & re.subn

    python 正则表达式 re.sub & re.subn

    正则表达式一个比较常见的用途是找到所有模式匹配的字符串并用不同的字符串来替换它们。sub方法提供一个替换值,可以是字符串或函数,和一个要被处理的字符串。这篇文章主要介绍了python 正则表达式 re.sub & re.subn,需要的朋友可以参考下
    2017-12-12
  • JS中正则表达式全局匹配正斜杠的方法

    JS中正则表达式全局匹配正斜杠的方法

    这篇文章主要介绍了JS中正则表达式全局匹配正斜杠的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • js 正则学习小记之匹配字符串字面量优化篇

    js 正则学习小记之匹配字符串字面量优化篇

    昨天在《js 正则学习小记之匹配字符串字面量》谈到 /"(?:\\.|[^"])*"/ 是个不错的表达式,因为可以满足我们的要求,所以这个表达式可用,但不一定是最好的
    2020-04-04
  • 正则表达式中环视的简单应用示例【基于java】

    正则表达式中环视的简单应用示例【基于java】

    这篇文章主要介绍了正则表达式中环视的简单应用,简单分析了环视的概念与功能,并基于java给出了正则表达式环视的具体使用技巧,需要的朋友可以参考下
    2017-04-04
  • js正则表达式之search方法讲解

    js正则表达式之search方法讲解

    返回与正则表达式查找内容匹配的第一个子字符串的位置
    2012-10-10
  • 教你轻松记住JS正则表达式

    教你轻松记住JS正则表达式

    有没有人像小编一样,学了好几遍正则表达式却还是很懵圈,学的时候老明白了,学完了忘光了。好吧,其实还是练的不够,今天就随我来复习一下这傲娇的正则表达式吧。
    2016-07-07

最新评论