奇怪的正则表达式输出

时间:2013-08-10 21:28:57

标签: php regex preg-replace

我有这段代码:

echo preg_match ("%^[A-Za-z0-9]$%", stripslashes(trim(X)));

对于X = "peter",输出为:0

对于X = "peter.",输出也为0

但是当我删除^时,它突然开始起作用了:

echo preg_match ("%[A-Za-z0-9]$%", stripslashes(trim(X)));

对于X = "peter",它返回1,对于"peter.",它返回0。 没有^使用它是否正确?有点奇怪。 我做错了什么?

1 个答案:

答案 0 :(得分:1)

您需要使用*字符匹配多个字符:

echo preg_match ("%^[A-Za-z0-9]*$%", stripslashes(trim(X)));

或使用+修饰符

echo preg_match ("%^[A-Za-z0-9]+$%", stripslashes(trim(X)));

仅匹配length() > 0的字符串。