正则表达式惰性匹配模式(?)
(编辑:jimmy 日期: 2024/11/18 浏览:3 次 )
正则表达式惰性匹配模式:
在贪婪匹配模式一章节已经说过人性是贪婪的,希望获得更多的金钱、地位甚至美女,但是也有很多清心寡欲的人,只要满足基本的生活需求就可以了,在正则表达式中也有这样的匹配原则,下面就进行一下介绍。
一.惰性模式的概念:
此模式和贪婪模式恰好相反,它尽可能少的匹配字符以满足正则表达式即可,例如:
var str="axxyyzbdkb"; console.log(str.match(/a.*b/));
以上代码是贪婪模式,于是能够匹配整个字符串,下面将其修改成惰性匹配模式:
var str="axxyyzbdkb"; console.log(str.match(/a.*"0"> 语法结构 语义解释 *"_blank" href="https://www.jb51.net/article/31491.htm">https://www.jb51.net/article/31491.htm接下来是本人的简介
其实贪婪和惰性很容易理解,从字面意思我们就可以知道,所谓的"贪婪"的意思就是,如果符合要求就一直往后匹配,一直到无法匹配为止,这就是贪婪模式。所谓的惰性模式就是一旦匹配到合适的就结束,不在继续匹配下去了,下面我介绍几个例子来主要讲述一下。
首先讲述一下贪婪模式的标示符:+,?,*,{n},{n,},{n,m}.惰性模式:+?,??,*??,{n}"htmlcode">
var pattern=/8[a-zA-Z0-9]*7/;贪婪模式 var string="abc8defghij7klngon8qrstwxy7";这时使用了贪婪模式*,表示8与8之间可有有任意多个字母,那这个正则先匹配第一个8,如果匹配到了后,就无限制的匹配后面的内容,只要后面的内容都满足[a-zA-Z0-9]就可以。一直匹配,匹配到不能再匹配为止,看紧接着后面的一个是不是7,如果不是那他就往前进一个(吐出一个看是不是7),如果不是再继续吐直到吐出7为止,然后匹配到的就是这之间的内容。所以结果匹配到的内容就是整条字符串。
var pattern=/8[a-zA-Z0-9]*"abc8defghij7klngon8qrstwxy7";上面正则使用了惰性模式*"htmlcode">
var test="<img src="/UploadFiles/2021-04-02/111.jpg">这样也可以实现惰性模式,[^>]这个表示的就是在<img到/>之间不能出现>,所以结果可以找寻每个<img>标签。
下一篇:Linux中基本正则表达式