-2

私はこのような文字列を持っています:

$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 ではありません 理由はわかりますか?

4

2 に答える 2

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
于 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 に答える