为什么不情愿的量词选择下一个原子regexp参数?



我理解根据正常量化选择并返回最小值,但我不明白为什么它定义下一个regexp原子的选择不贪婪。有没有人知道是否有一个表示不情愿量词的基本表达式(如果存在的话)?如果我看到表达式,我可以理解,但我搜索并发现只引用了?=?!的联合使用,但我不知道是否是这种情况,因为我不能使用它。

How to Works(I guess):

console.log("greedy regexp example(Expected  "'blablabla' is a 'bla'")");
console.log(("'blablabla' is a 'bla' so...").match(/'.*'/));
console.log("non-greedy regexp example(Expected "''" but returns "'blablabla'")");
console.log(("'blablabla' is a 'bla' so...").match(/'.*?'/));

*使表达式贪婪

?使表达式变懒

在这种情况下,match(/'.*?'/)被读取为"单引号后面跟着任意字符(。)零次或多次(*),但只在下一个单引号">

之前大多数regex备忘单都会描述这类表达式。我个人比较喜欢https://www.rexegg.com/regex-quickstart.html (states * is greedy)

What do 'lazy'和& # 39;贪婪# 39;意思是在正则表达式的上下文中?设置*为贪心

https://docs.oracle.com/javase/tutorial/essential/regex/quant.html表示*是贪婪的。

最新更新