我正在为 G20003030 等检查字符串构建正则表达式,或者像 G-20003030 那样构建正则表达式。第一个字母可以是以下任何一个:VGJ。这是我的代码:
$string = "G20003030";
if (preg_match('^[VGJ]{1,1}?[0-9]{8,8}$/', $string)) {
echo "passed";
} else {
echo "not passed";
}
但是它一直返回“未通过”。我的正则表达式有什么问题以及如何检查这两种变体? (我认为我的代码仅适用于第一个代码)
答案 0 :(得分:3)
警告:
preg_match()
:在第3行的/code/xxxxxx.php中找不到结尾分隔符'^'
你忘记了第一个斜杠和连字符(感谢 @Sepster )。
/^[VGJ]-?[0-9]{8}$/
答案 1 :(得分:2)
尝试使用此正则表达式:
/^[VGJ]-?[0-9]{8}$/