为什么这个正则表达式不会验证

时间:2012-09-13 16:11:59

标签: php regex

我正在为 G20003030 等检查字符串构建正则表达式,或者像 G-20003030 那样构建正则表达式。第一个字母可以是以下任何一个:VGJ。这是我的代码:

$string = "G20003030";
if (preg_match('^[VGJ]{1,1}?[0-9]{8,8}$/', $string)) {
    echo "passed";
} else {
    echo "not passed";
}

但是它一直返回“未通过”。我的正则表达式有什么问题以及如何检查这两种变体? (我认为我的代码仅适用于第一个代码)

2 个答案:

答案 0 :(得分:3)

  

警告preg_match():在第3行的/code/xxxxxx.php中找不到结尾分隔符'^'

你忘记了第一个斜杠和连字符(感谢 @Sepster )。

/^[VGJ]-?[0-9]{8}$/

答案 1 :(得分:2)

尝试使用此正则表达式:

/^[VGJ]-?[0-9]{8}$/