我是正则表达式的新手。我认为这段代码应该返回一个 0?但它返回一个 1。
echo preg_match("/[ac]{2}/","abc");
有什么问题?
如果您希望正则表达式匹配整个字符串,则需要使用anchors:
echo preg_match( "/^[a-c]{2}$/","abc");
您在提供的字符串中匹配“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