我是正则表达式的新手。 我认为这段代码应该返回0? 但它返回1。
echo preg_match(“/ [a-c] {2} /”,“abc”);
有什么问题?
答案 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