Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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/string/5.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-将ereg转换为preg_匹配_Php_Regex - Fatal编程技术网

PHP-将ereg转换为preg_匹配

PHP-将ereg转换为preg_匹配,php,regex,Php,Regex,我有一个脚本,我已经用了很长一段时间来验证英国邮政编码,问题是函数的一部分使用了ereg,而不是preg\u match 请有人用下面的句子给我指一下正确的方向好吗?我添加了分隔符,但没有得到与以前相同的结果 $alpha1 = "[abcdefghijklmnoprstuwyz]"; $alpha2 = "[abcdefghklmnopqrstuvwxy]"; $alpha3 = "[abcdefghjkstuw]"; $alpha4 = "[abehmnprvwxy]"; $alpha5 =

我有一个脚本,我已经用了很长一段时间来验证英国邮政编码,问题是函数的一部分使用了
ereg
,而不是
preg\u match

请有人用下面的句子给我指一下正确的方向好吗?我添加了分隔符,但没有得到与以前相同的结果

$alpha1 = "[abcdefghijklmnoprstuwyz]";
$alpha2 = "[abcdefghklmnopqrstuvwxy]";
$alpha3 = "[abcdefghjkstuw]";
$alpha4 = "[abehmnprvwxy]";
$alpha5 = "[abdefghjlnpqrstuwxyz]";

// Expression for postcodes: AN NAA, ANN NAA, AAN NAA, and AANN NAA
$pcexp[0] = '/^(' . $alpha1 . '{1}' . $alpha2 . '{0,1}[0-9]{1,2})([0-9]{1}' . $alpha5 . '{2})$/';

// Expression for postcodes: ANA NAA
$pcexp[1] = '/^(' . $alpha1 . '{1}[0-9]{1}' . $alpha3 . '{1})([0-9]{1}' . $alpha5 . '{2})$/';

// Expression for postcodes: AANA NAA
$pcexp[2] = '/^(' . $alpha1 . '{1}' . $alpha2 . '[0-9]{1}' . $alpha4 . ')([0-9]{1}' . $alpha5 . '{2})$/';

// Exception for the special postcode GIR 0AA
$pcexp[3] = '/^(gir)(0aa)$/';

// Standard BFPO numbers
$pcexp[4] = '/^(bfpo)([0-9]{1,4})$/';

// c/o BFPO numbers
$pcexp[5] = '/^(bfpo)(c\/o[0-9]{1,3})$/';

乍一看,一切正常,但您需要在结束分隔符后添加一个
i
,使正则表达式不区分大小写:

$pcexp[4] = '/^(bfpo)([0-9]{1,4})$/i';
等等

您的正则表达式不允许邮政编码部分之间存在空格。这是故意的吗?如果没有,请在空格合法的地方添加一个
\s*


另外,您可以删除
{1}
的所有实例,并将每个
{0,1}
替换为

乍一看,一切看起来都正常,但您需要在结束分隔符后添加一个
i
,使正则表达式不区分大小写:

$pcexp[4] = '/^(bfpo)([0-9]{1,4})$/i';
等等

您的正则表达式不允许邮政编码部分之间存在空格。这是故意的吗?如果没有,请在空格合法的地方添加一个
\s*


此外,您可以删除
{1}
的所有实例,并将每个
{0,1}
替换为

此特定代码可能存在重复,而不是一般情况。我曾试图自己修复它,这似乎与Tim Pietzcker的一些输入一起工作。可能的重复是针对这个特定的代码,而不是一般的代码。我试着自己修复它,这似乎与Tim PietzckerHi Tim的一些意见有关,谢谢。在检查之前,将从字符串中删除空格。你能告诉我当将
{0,1}
更改为
并删除
{1}
时会发生什么吗?没有任何变化<代码>?表示零或一,而
{1}
只是多余的。非常感谢您的帮助:)嗨,蒂姆,谢谢。在检查之前,将从字符串中删除空格。你能告诉我当将
{0,1}
更改为
并删除
{1}
时会发生什么吗?没有任何变化
表示零或一,而
{1}
只是多余的。非常感谢您的帮助:)