如何解释正则表达式

时间:2015-04-06 11:05:48

标签: php regex

我是正则表达的新手。为了研究它,我指的是掌握正则表达式。

`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},我也会得到相同的结果。所以我无法得到这个输出是如何累积的。

1 个答案:

答案 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次。所以这也匹配一个具有单个字符的行,但上面的正则表达式匹配一个必须至少有三个字符的子字符串。