Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么这个正则表达式没有';无法验证_Php_Regex - Fatal编程技术网

Php 为什么这个正则表达式没有';无法验证

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

我正在为检查字符串(如G20003030G-20003030)构建正则表达式。第一个字母可以是:VGJ。这是我的代码:

$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}$/