2

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

echo preg_match("/[ac]{2}/","abc");

有什么问题?

4

2 回答 2

2

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

echo preg_match( "/^[a-c]{2}$/","abc");
于 2013-03-07T12:35:10.620 回答
1

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

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

[ac]{3} 将匹配所有三个,因为您基本上要求 preg_match在提供的范围内准确返回3 个字符。

要完全匹配指定范围内的三个字符:

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

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

php > echo preg_match( "/^[a-c]{3}$/","abc");
1
于 2013-03-07T12:29:17.733 回答