[PHP] 文字列から指定された桁数の数字を抽出する方法 preg_match_all()

PHPで文字列から指定された桁数の数字を取り出す方法についてです。関数は preg_match_all()を使います。

こちらは4桁の数字がうまく抽出されたような結果になっていますが、元の文章に123456789のような4桁以上の数字がある場合、求める結果になりません。文章に含まれる数字が4桁のみという限定された状況では利用できます。

元の文章に4桁以上の数字が含まれる場合を見てみましょう。

こちらは4桁以上の数字があると4桁で区切って出力されてしまいます。「123456789」の場合「1234」「5678」のように出力されています。

$pattern = ‘/(?<!\d)\d{4}(?!\d)/’; の部分がポイントで、
「\d{4}」の前の部分「(?<!\d)」は直前の文字が半角数字でない場合、後ろの部分「(?!\d)」は直後の文字が半角英数でない場合という意味になります。これで半角4桁の数字のみが抽出されます。



Author: webmaster