我是正则表达的新手。为了研究它,我指的是掌握正则表达式。
`My regular expression is`
[a-z\s]{3,10}
and the input string is
cat is the cat
我在https://regex101.com上查看此内容。在我得到的输出中" cat是"如果我将正则表达式更改为[a-z \ s] {1,10},我也会得到相同的结果。所以我无法得到这个输出是如何累积的。
答案 0 :(得分:2)
Noramlly正则表达式引擎会从左到右扫描字符串中的匹配项。在这里,实际的正则表达式是[a-z\s]{3,10}
,它从一开始就匹配10个小写字母或空格的字符,因为它是贪婪的。 {3,10}
重复前一个标记[a-z\s]
分钟三次,最多重复10次。如果该行包含小写字母或长度为9
的空格,则此正则表达式也会匹配该行,因为9属于3
范围,10
[a-z\s]{1,10}
也可以从头开始匹配10个小写字母或空格字符。 {1,10}
将重复前一个令牌[a-z\s]
至少1次,最多10次。所以这也匹配一个具有单个字符的行,但上面的正则表达式匹配一个必须至少有三个字符的子字符串。