JavaScript正则表达式的贪婪匹配和非贪婪匹配

作者:白夜行1994 时间:2024-04-30 09:53:01 

所谓贪婪匹配就是匹配重复字符是尽可能多的匹配,比如:


"aaaaa".match(/a+/);
//["aaaaa", index: 0, input: "aaaaa"]

非贪婪匹配就是尽可能少的匹配,用法就是在量词后面加上一个“?”,比如:


"aaaaa".match(/a+?/);
//["a", index: 0, input: "aaaaa"]

但是非贪婪匹配有时候和我们期待的并不一样,比如:


"aaab".match(/a+b/);
["aaab", index: 0, input: "aaab"]
"aaab".match(/a+?b/);
["aaab", index: 0, input: "aaab"]

在我们期待的情况下非贪婪匹配应该是匹配"ab"才对但是结果却和贪婪匹配时一样的。
在《权威指南》中有这么一句话:正则表达式的模式匹配总是会寻找字符串中第一个可能匹配的位置。
个人对这句话的理解是:上例中正则表达式会先找到第一个字符a,因为a后面连接的字符有可能形成匹配,这是正则表达式就认定这个位置的字符了,然后开始往后进行匹配,如果像第一个例子中那样非贪婪匹配,匹配到第一个a就结束了,但是第二个例子中还要匹配b所以不得不接着往下匹配直到匹配到b为止结束。

总结

以上所述是小编给大家介绍的JavaScript正则表达式的贪婪匹配和非贪婪匹配网站的支持!

来源:http://blog.csdn.net/qq_34356563/article/details/77844188

标签:js,正则表达式,贪婪,非贪婪
0
投稿

猜你喜欢

  • centos7中如何利用crontab进行mysql定时备份

    2024-01-28 00:50:34
  • Python 安装setuptools和pip工具操作方法(必看)

    2023-11-06 11:46:07
  • Python + opencv对拍照得到的图片进行背景去除的实现方法

    2022-09-06 19:14:51
  • python3.3实现乘法表示例

    2023-11-01 11:06:55
  • 修改 CentOS 6.x 上默认Python的方法

    2023-08-07 10:02:59
  • 析构函数与php的垃圾回收机制详解

    2023-11-14 11:27:34
  • SQLServer Execpt和not in 性能区别

    2024-01-21 23:33:46
  • 解决MySQL去除密码登录告警的问题

    2024-01-26 12:33:21
  • golang 对私有函数进行单元测试的实例

    2024-05-13 10:43:54
  • Python列表去重的几种方法整理

    2022-06-18 18:05:17
  • python利用小波分析进行特征提取的实例

    2023-01-02 01:02:22
  • MySQL使用聚合函数进行单表查询

    2024-01-14 10:41:20
  • 游戏开发Unity2D图片任意形状破碎裂片效果展示

    2022-01-18 04:43:15
  • 浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)

    2023-04-15 09:25:18
  • JSP分页显示的实例代码

    2023-06-26 06:06:37
  • python调用fortran模块

    2023-12-22 23:36:40
  • 详解Python odoo中嵌入html简单的分页功能

    2021-05-21 12:24:06
  • javascript弹出窗口总结

    2009-08-21 12:40:00
  • 用户体验杂谈

    2011-10-21 21:09:08
  • Python中异常重试的解决方案详解

    2021-06-16 01:12:24
  • asp之家 网络编程 m.aspxhome.com