我有一个这样的字符串:
$somestring= "10, Albalala STREET 11 (768454)";
for mat可能会改变一点:
$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 你知道为什么吗?
答案 0 :(得分:1)
由于^
和$
,正则表达式不匹配。而是使用\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
答案 1 :(得分: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]);//