Php 为什么这个正则表达式没有';无法验证
我正在为检查字符串(如G20003030或G-20003030)构建正则表达式。第一个字母可以是:VGJ。这是我的代码:Php 为什么这个正则表达式没有';无法验证,php,regex,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"; } 但它总是返回“未通过”。正则表达式中有什么错误,如何检查这两个变量?(我认为我的代码只适用于第一个) 警告:pre
$string = "G20003030";
if (preg_match('^[VGJ]{1,1}?[0-9]{8,8}$/', $string)) {
echo "passed";
} else {
echo "not passed";
}
但它总是返回“未通过”。正则表达式中有什么错误,如何检查这两个变量?(我认为我的代码只适用于第一个)
警告:preg_match()
:在第3行的/code/xxxxxx.php中找不到结尾分隔符'^'
您忘记了第一个斜杠和连字符(谢谢@Sepster)
尝试使用此正则表达式:
/^[VGJ]-?[0-9]{8}$/
您没有检查可选的破折号。不能简化为
/^[VGJ]-?\d{8}$/
?还需要(可选)连字符。@Florent谢谢,它工作得很好,是的,我首先错过了连字符:(
/^[VGJ]-?[0-9]{8}$/