8-20 WPS JS宏 正则表达式-懒惰匹配

8-20 WPS JS宏 正则表达式 - 懒惰匹配

一、 懒惰匹配

懒惰匹配就是尽可能少地匹配,同时也允许正则表达式剩余的部分继续匹配。

(n,m}? 匹配前项至少n次,但不超过m次,但尽可能少重复

(n)? 匹配前项n或更多次,但尽可能少重复

?? 匹配前项零或一次,等价于{0,1),但尽可能少重复

+? 匹配前项一或多次,等价于{1,,但尽可能少重复

*? 匹配前项零或多次,等价于{0},但尽可能少重复

二、基础测试

function test(){

//懒惰匹配与贪婪匹配对比

var s="姓名:陈小小,年龄:28,工号:NED088,号码:17773050505";

var s1="BeiJing:0-1-0,ZIP:100000"

var L1=s.match(/\d{3,5}?/g);

//局部变量:L1="088","177","730","505",类型:Array/object

var T1=s.match(/\d{3,5}/g);

//局部变量:T1="088","17773","05050",类型:Array/object

var L2=s.match(/\d{3,}?/g);

//局部变量:L2="088","177","730","505",类型:Array/object

var T2=s.match(/\d{3,}/g);

//局部变量:T2="088","17773050505",类型:Array/object

var L3=s.match(/\d+?/g);

//局部变量:L3="2","8","0","8","8","1","7","7","7","3","0","5","0","5","0","5",类型:Array/object

var T3=s.match(/\d+/g);

//局部变量:T3="28","088","17773050505",类型:Array/object

var L4=s1.match(/(\d-?)+?/g);

//局部变量:L4="0-","1-","0","1","0","0","0","0","0",类型:Array/object

var T4=s1.match(/(\d-?)+/g);

//局部变量:T4="0-1-0","100000",类型:Array/object

var L5=s1.match(/(\d-?)*?/g);

//局部变量:L5="","","","","","","","","","","","","","","","","","","","","","","","","",类型:Array/object

var T5=s1.match(/(\d-?)*/g);

//局部变量:T5="","","","","","","","","0-1-0","","","","","","100000","",类型:Array/object

//示例重点:

//因.点可匹配所有内容除换行符,因此需要懒惰匹配来约束。

var s2="name:leo, age:18 name:Lili,age:20 name:Adam, age:120"

var L6=s2.match(/name.+?\d+/g)

//局部变量:L6="name:leo, age:18","name:Lili,age:20","name:Adam, age:120",类型:Array/object

var T6=s2.match(/name.+\d+/g)

//局部变量:T6="name:leo, age:18 name:Lili,age:20 name:Adam, age:120",类型:Array/object

}

javascript 复制代码
function test(){
	
	//懒惰匹配与贪婪匹配对比
var s="姓名:陈小小,年龄:28,工号:NED088,号码:17773050505";
var s1="BeiJing:0-1-0,ZIP:100000"

var L1=s.match(/\d{3,5}?/g);
//局部变量:L1=["088","177","730","505"],类型:Array/object
var T1=s.match(/\d{3,5}/g);
//局部变量:T1=["088","17773","05050"],类型:Array/object


var L2=s.match(/\d{3,}?/g);
//局部变量:L2=["088","177","730","505"],类型:Array/object
var T2=s.match(/\d{3,}/g);
//局部变量:T2=["088","17773050505"],类型:Array/object


var L3=s.match(/\d+?/g);
//局部变量:L3=["2","8","0","8","8","1","7","7","7","3","0","5","0","5","0","5"],类型:Array/object
var T3=s.match(/\d+/g);
//局部变量:T3=["28","088","17773050505"],类型:Array/object


var L4=s1.match(/(\d-?)+?/g);
//局部变量:L4=["0-","1-","0","1","0","0","0","0","0"],类型:Array/object
var T4=s1.match(/(\d-?)+/g);
//局部变量:T4=["0-1-0","100000"],类型:Array/object


var L5=s1.match(/(\d-?)*?/g);
//局部变量:L5=["","","","","","","","","","","","","","","","","","","","","","","","",""],类型:Array/object
var T5=s1.match(/(\d-?)*/g);
//局部变量:T5=["","","","","","","","","0-1-0","","","","","","100000",""],类型:Array/object


//示例重点:
//因.点可匹配所有内容除换行符,因此需要懒惰匹配来约束。
var s2="name:leo, age:18 name:Lili,age:20 name:Adam, age:120"

var L6=s2.match(/name.+?\d+/g)
//局部变量:L6=["name:leo, age:18","name:Lili,age:20","name:Adam, age:120"],类型:Array/object
var T6=s2.match(/name.+\d+/g)
//局部变量:T6=["name:leo, age:18 name:Lili,age:20 name:Adam, age:120"],类型:Array/object
}
相关推荐
程序员黑豆1 小时前
Java 注释详解:单行、多行与文档注释的完整指南
java·前端·ai编程
剪刀石头布啊1 小时前
antd中可编辑表格中巧用useWatch实现联动高性能效果,以及定制延伸学习
前端
油丶酸萝卜别吃2 小时前
前端转全栈学习路线
前端·学习
浮生望2 小时前
前端路由进阶:History API原理与手写HistoryRouter
前端
陆枫Larry3 小时前
JavaScript 中的竞态是什么,为啥会有竟态?
前端
江畔柳前堤3 小时前
HBM:大语言模型时代的「算力血液」——从内存墙到带宽革命的深度拆解
服务器·人工智能·windows·目标检测·语言模型·自然语言处理·软件工程
不会就选b5 小时前
Linux之信号(二)
linux·运维·服务器
上海安当技术5 小时前
半天接入:USBKey RESTful API + C 动态库,Web 和 C/S 两套集成路径实战
前端·后端·restful·集成·usbkey
DevUI团队5 小时前
从“即兴创作”到“规格先行”,华为云码道(CodeArts)代码智能体持续深耕企业级规范驱动开发能力
前端·人工智能·后端
GlueNa2SiO36 小时前
第十八章 Linux故障排查与恢复
linux·服务器·笔记·学习