Preg-match返回错误的值?

时间:2013-03-07 12:26:13

标签: regex preg-match

我是正则表达式的新手。 我认为这段代码应该返回0? 但它返回1。

echo preg_match(“/ [a-c] {2} /”,“abc”);

有什么问题?

2 个答案:

答案 0 :(得分:2)

如果您希望正则表达式与整个字符串匹配,则需要使用anchors

echo preg_match( "/^[a-c]{2}$/","abc");

答案 1 :(得分:1)

您在提供的字符串中匹配'ab'。

php > echo preg_match( "/[a-c]{2}/","ab");                                                                                                                                                                                                                                                                                                                                  
1

[a-c] {3}会匹配所有三个,因为你基本上要求preg_match在提供的范围内返回完全 3个字符。

要精确匹配指定范围内的三个字符:

php > echo preg_match( "/[a-c]{3}/","abc"); 
1

要匹配行开始的位置,请在范围内包含三个字符,然后结束:

php > echo preg_match( "/^[a-c]{3}$/","abc");
1