b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

js正则表达式惰性匹配和贪婪匹配的用法分析

电脑杂谈  发布时间:2020-06-09 05:04:17  来源:网络整理

javascript 正则表达式元字符_javascript正则表达式_javascript 正则表达式 贪婪

本文中的示例描述了js正则表达式惰性匹配和贪婪匹配的用法. 与您分享以供参考,如下:

在讨论贪婪模式和惰性模式之前,让我们回顾一下JS常规基础:

基本写作:

①没有双引号,只需使用// include => /wehfwue123123/.test();

②反斜杠\表示转义=> / \. jpg $ /

③基本用法: .test(str);

语法:

①锚点等级

/ ^ a / =>以“ a”开头

/ \. jpg $ / =>以“ .jpg”结尾

②字符类

[abc]: a或b或c

[0-9]: 一个数字

[a-z]: 一个字母

.: 任何字符

javascript 正则表达式 贪婪_javascript 正则表达式元字符_javascript正则表达式

③元字符

^: 在[]中表示否,在[]外部表示开头

\ d: [0-9]

\ s: 空白

\ w: [A-Za-z0-9 _]

\ D: [^ \ d]-不是数字

\ S: 非空白字符

④量词

{m,n}: m至n次

元字符指示:

*: {0,}

?: {0,1}

+: {1,}

难度: 贪婪模式/懒惰模式

贪婪模式-在成功匹配的前提下,尝试尽可能多地匹配

javascript 正则表达式元字符_javascript 正则表达式 贪婪_javascript正则表达式

惰性模式-在成功匹配的前提下,尝试尽可能少地匹配

说明1: 结合代码和文本

正则表达式中的贪婪和惰性量词可以控制表达式匹配过程. 我们知道量词吗? ,*,+的含义,可以指定相关模式的出现次数,默认情况下我们使用贪婪量词,其匹配过程是从整个字符串开始看,如果没有匹配,请删除最后一个,然后查看是否匹配,依此类推,直到匹配或字符串为空为止,例如:

vars ="abbbaabbbaaabbb1234";
varre1=/.*bbb/g;//*是贪婪量词
re1.test(s);

此匹配过程将从整个字符串开始:

re1.test("abbbaabbbaaabbb1234");//false ,则去掉最后一个字符4再继续
re1.test("abbbaabbbaaabbb123");//false ,则去掉最后一个字符3再继续
re1.test("abbbaabbbaaabbb12");//false ,则去掉最后一个字符2再继续
re1.test("abbbaabbbaaabbb1");//false ,则去掉最后一个字符1再继续
re1.test("abbbaabbbaaabbb");//true ,结束

在贪婪的量词之后再添加一个?它成为一个懒惰的量词. 它的匹配过程是相反的,从前面的第一个开始,如果不匹配则添加一个,依此类推,直到字符串的末尾,以上面的为例.

vars ="abbbaabbbaaabbb1234";
varre1=/.*bbb/g;//*是惰性量词
re1.test(s);

其匹配过程如下:

re1.test("a");//false, 再加一个
re1.test("ab");//false, 再加一个
re1.test("abb");//false, 再加一个
re1.test("abbb");//true, 匹配了,保存这个结果,再从下一个开始
re1.test("a");//false, 再加一个
re1.test("aa");//false, 再加一个
re1.test("aab");//false, 再加一个
re1.test("aabb");//false, 再加一个
re1.test("aabbb");//true, 匹配了,保存这个结果,再从下一个开始

摘要:

默认贪婪匹配是从前到后,最大长度匹配,延迟匹配是在量词后加一个?从字符串开头开始匹配,最小长度匹配

PS: 以下是两个更方便的正则表达式工具供您参考:

JavaScript正则表达式测试工具:

正则表达式生成工具:

javascript正则表达式_javascript 正则表达式元字符_javascript 正则表达式 贪婪

对于更多对JavaScript相关内容感兴趣的读者,您可以查看本网站的主题: “ JavaScript替换操作技能概述”,“ JavaScript搜索算法技能概述”,“ JavaScript数据结构和算法技能概述”. ,“ JavaScript遍历算法“技巧摘要”,“ JavaScript中json操作技巧摘要”,“ JavaScript错误和调试技巧摘要”和“ JavaScript数学操作用法摘要”

我希望本文对JavaScript编程的每个人都有帮助.

时间: 2016-12-25

标签:

->

本文分析了js正则表达式的最长匹配(贪婪匹配)和最短匹配(惰性匹配)的用法. 我将其共享给您,以供您参考,如下: 最近,我阅读了RequireJS 2.1.15源代码,该代码在源代码的开头定义一系列变量,有4个正则表达式: var commentRegExp = /( \ / \ *([\ s \ S] *?)\ * \ / |([^: ] | ^)\ / \ /(. *)$)/ mg,cjsRequireRegExp = /[^.]\s* require \ s * \(\ s * [“']([^'” \ s] +)[“'] \ s * \)/ g,jsS

所谓的贪婪匹配是指尽可能地匹配重复的字符,例如: “ aaaaa” .match(/ a + /); // [“ aaaaa”,索引: 0,输入: “ aaaaa”]非贪婪匹配是为了尽可能少地匹配,用法是添加一个“?”在量词之后,例如: “ aaaaa” .match(/ a +?/); // [“ a”,索引: 0,输入: “ aaaaa”]但非贪心匹配

本文中的示例总结了JS正则表达式的贪婪模式和非贪婪模式. 我将其共享给您,以供您参考,如下: 首先,以前的js代码:


热点图片
拼命载入中...