-2

我有一个这样的字符串:

$somestring= "10, Albalala STREET 11 (768454)";

格式可能会发生一些变化:

$somestring= "10, Albalala STREET 11 (S) 768454 ";

或者

$somestring= "10, Albalala STREET 11 (S) ( 768454 )";

我想在 php 中使用正则表达式来获取 6 位数字(这是邮政编码)。

$regex_pattern = "/^\d{6}$/";
preg_match_all($regex_pattern,$somestring,$matches);
print_r("postalcode: " . $matches);//

我得到的结果是:

postalcode: Array

不是数字 768454 你知道为什么吗?

4

2 回答 2

1

正则表达式不匹配,因为^and $。而是使用\b(单词边界)。

要仅获取数字,请通过以下方式访问它$matches[0][0]

$somestring= "10, Albalala STREET 11 (768454)";
$regex_pattern = "/\b\d{6}\b/";
preg_match_all($regex_pattern, $somestring, $matches);
print_r($matches[0][0]); # => 768454
于 2013-08-12T08:35:05.140 回答
0

尝试这个

$a = '10, Albalala STREET 11 (S) ( 768454 )';
$a = preg_replace('/\D{1,}$/', '', $a); // remove non digit chars at the end
preg_match_all('/\d{6}$/',$a,$matches);
$val = $matches[0];
print_r("postalcode: " . $val[0]);//
于 2013-08-12T08:52:01.820 回答