1

{2,5} 中 5 的意义是什么?它匹配前一个令牌的 2 到 5 个。这是一个惰性匹配,在满足下一个标记之前将匹配尽可能少的字符。

我举了个例子abcccccabccc,在 {2,5} 中没有看到 5 的任何用途?它只匹配 2 个连续的 a。

有人可以举一个第二个参数起任何作用的例子吗?(在这种情况下为 5 {2,5}?)

abc{2,5} is greedy match 

First match: abccccc
Second match: abccc

abc{2,5}? is lazy match
First match: abcc
Second match: abcc

参考

4

3 回答 3

2

看这个例子>>

细绳:123abcccccabc

正则表达式:/123(abc{2,5}?)abc/

abccccc在第 1 组中匹配,因为abc后面的匹配也需要匹配。

知道了?

于 2012-07-21T15:15:55.750 回答
2

说你的正则表达式是"(.{0,10}?)". 这将匹配最多 10 个字符的引用字符串。例如

""
"foo"
"1234567890"

懒惰将确保引号不能出现在字符串中。例如,如果您匹配一个包含两个引号部分的字符串,则正则表达式将只匹配第一个:

// "(.{0,10}?)"
"foo" "bar"
 ^^^

省略惰性修饰符,它将匹配两者,错误地捕获foo" "bar为字符串内容。

// "(.{0,10})"
"foo" "bar"
 ^^^^^^^^^
于 2012-07-21T15:17:34.170 回答
0

是和不是。它的含义取决于它后面的内容。例如abc{2,5}?c不同于abc{2,5}?a.

于 2012-07-21T15:16:20.200 回答