嗨,我正在尝试匹配搜索字符串,以便如果我们的邮政编码位于字符串的开头,则返回邮政编码的匹配项以及字符串的其余部分。这就是我到目前为止所拥有的
$str = "90210 Beverly Hills, CA";
$res = preg_match('/^((\d{5})(-\d{4})?)\s+(.+?)$/', $str, $matches);
但是当我 print_r 匹配时,它会返回一个额外的空间键。
Array
(
[0] => 90210 Beverly Hills, CA
[1] => 90210
[2] => 90210
[3] =>
[4] => Beverly Hills, CA
)
无论如何我可以改进模式并返回不是空字符串的匹配项吗?这个实例有更好的模式吗?此外,如果只给出一个邮政编码或一个文本字符串,它将返回 false。