无论格式如何,如何知道字符串

时间:2015-12-16 06:26:03

标签: php regex preg-match preg-match-all

我有这样的变量

$string = "Hello World";

我想将其与正确的格式进行比较:

$formatstring = 'anystringornumber/anystringornumber/anystringornumber/anystringornumber/number';

这是我的PHP用法:

$key = "Kode Parkir 1/01012015/Shift1/Suhendra/25000";
$regex = '^[A-Za-z]/[A-Za-z]/[A-Za-z]/[A-Za-z]/[0-9]^';
if (preg_match($regex, $key)) {
    echo 'Passed';
} else {
    echo 'Wrong key';
}

结果始终为Wrong Key

2 个答案:

答案 0 :(得分:1)

您的regex不正确而是使用

$regex = '~[a-z\d]+/[a-z\d]+/[a-z\d]+/[a-z\d]+/[\d]+~i';

Demo

答案 1 :(得分:0)

您想要匹配字母数字字符(字母和数字),但没有在正则表达式中添加数字。您还错过+以匹配多个字符。其次,不要使用^来封闭模式。它在regex中用作特殊字符,表示字符串的开头。您可以改用#。像这样:

$regex = '#[A-Za-z0-9]+/[A-Za-z0-9]+/[A-Za-z0-9]+/[A-Za-z0-9]+/[0-9]+#';

但是,如果您想使用^$及其特殊含义,它将是这样的:

$regex = '#^[A-Za-z0-9]+/[A-Za-z0-9]+/[A-Za-z0-9]+/[A-Za-z0-9]+/[0-9]+$#';