快速php正则表达式问题(包括代码)

时间:2010-12-29 18:30:01

标签: php regex

$first = ".";
$last = "a";
$middle= "testing-123.test";

if (preg_match("[a-zA-Z0-9]", $first)){
 echo 'Frist Returned valid.';
}
if (preg_match("[a-zA-Z0-9.-]", $middle)){
 echo 'Middle Returned valid.';
}
if (preg_match("[a-zA-Z0-9]", $last)){
 echo 'Last Returned valid.';
}

我正在使用substr将字符串分解为3个部分,因此在此示例中原始文本为“.testing-123.testa”。我没有在这里包含substr,但在这种情况下只是预定义了变量。我想检查一下,这意味着以下要求:

第一个字符:a-z,A-Z,0-9 NO SYMBOLS

中间字符:仅限a-z,A-Z,0-9。和 - 符号

最后一个字符:与第一个字符相同。

当我跑到上面的代码时,它什么都没回应。有任何想法吗?

2 个答案:

答案 0 :(得分:4)

您缺少分隔符,请尝试在正则表达式周围添加/

if (preg_match("/[a-zA-Z0-9]/", $first)){
 echo 'Frist Returned valid.';
}
if (preg_match("/[a-zA-Z0-9.-]/", $middle)){
 echo 'Middle Returned valid.';
}
if (preg_match("/[a-zA-Z0-9]/", $last)){
 echo 'Last Returned valid.';
}

您可能还想使用preg_match_all查找更多/所有实例。

答案 1 :(得分:0)

if (preg_match("/^[a-z0-9]+$/i", $first)){
 echo 'First Returned valid.';
}
if (preg_match("/^[a-z0-9.-]+$/i", $middle)){
 echo 'Middle Returned valid.';
}
if (preg_match("/^[a-z0-9]+$/i", $last)){
 echo 'Last Returned valid.';
}

应该做你需要的。

您需要分隔符(/),并且需要确保从字符串的开头到结尾(^$锚点)测试所有字符。 / p>