PHP で文字列から数字を抽出する方法
Minahil Noor
2023年1月30日
-
PHP で文字列から数値を抽出するために
preg_match_all()
関数を使用する -
PHP で文字列から数値を抽出するための
filter_var()
関数の使用法 -
PHP で文字列から数値を抽出するには
preg_replace()
関数を使用する
この記事では、PHP で文字列から数字を抽出する方法を紹介します。
preg_match_all()
関数を使用するfilter_variable()
関数を使用するpreg_replace()
関数を使用する
PHP で文字列から数値を抽出するために preg_match_all()
関数を使用する
組み込みの関数 preg_match_all()
を用いて文字列から数値を抽出することができます。この関数は文字列から指定されたパターンをグローバルに検索します。この関数を利用するための正しい構文は以下の通りです。
preg_match_all($pattern, $inputString, $matches, $flag, $offset);
組み込み関数 preg_match_all()
は 5つのパラメータを持ちます。パラメータの詳細は以下の通りです。
パラメータ | 説明 | |
---|---|---|
$pattern |
必須 | これは与えられた文字列の中でチェックしたいパターンです。 |
$inputString |
必須 | 与えられたパターンを検索したい文字列です。 |
$matches |
オプション | このパラメータが与えられた場合、この関数はマッチング処理の結果を格納します。 |
$flags |
オプション | このパラメータには 2つのオプションがあります。PREG_OFFSET_CAPTURE と PREG_UNMATCHED_AS_NULL です。このパラメータの説明はこちらを参照してください。 |
$offset |
オプション | どこからマッチング処理を開始するかの機能を伝えます。通常、検索は最初から始まります。 |
この関数は Boolean
変数を返します。与えられたパターンが存在すれば真を返します。
以下のプログラムは、preg_match_all()
関数を用いて与えられた文字列から数値を抽出する方法を示しています。
<?php
$string = 'Sarah has 4 dolls and 6 bunnies.';
preg_match_all('!\d+!', $string, $matches);
print_r($matches);
?>
!\d+!
パターンを使用して、文字列から数値を抽出しました。
出力:
Array
(
[0] => Array
(
[0] => 4
[1] => 6
)
)
PHP で文字列から数値を抽出するための filter_var()
関数の使用法
また、文字列から数値を抽出するには、filter_var()
関数を使用することもできます。この関数を使用するための正しい構文は以下の通りです。
filter_var($variableName, $filterName, $options)
関数 filter_var()
は 3つのパラメータを受け付ける。パラメータの詳細は以下の通りです。
パラメータ | 説明 | |
---|---|---|
$variableName |
必須 | これはフィルタリングする変数です。 |
$filterName |
必須 | 変数に適用されるフィルタの名前です。デフォルトでは FILTER_DEFAULT です。 |
$options |
必須 | このパラメータは使用するオプションを指定します。 |
ここでは FILTER_SANITIZE_NUMBER_INT
フィルタを利用しています。文字列から数値を抽出するプログラムは以下のようになります。
<?php
$string = 'Sarah has 4 dolls and 6 bunnies.';
$int = (int) filter_var($string, FILTER_SANITIZE_NUMBER_INT);
echo("The extracted numbers are: $int \n");
?>
出力:
The extracted numbers are: 46
PHP で文字列から数値を抽出するには preg_replace()
関数を使用する
PHP では、文字列から数値を抽出するために preg_replace()
関数を使用することもできます。この関数を使用するための正しい構文は以下の通りです。
preg_replace($regexPattern, $replacementVar, $original, $limit, $count)
関数 preg_replace()
は 5つのパラメータを受け付けます。パラメータの詳細は以下の通りです。
パラメータ | 説明 | |
---|---|---|
$regexPattern |
必須 | これは元の string や array で検索するパターンです。 |
$replacementVar |
必須 | これは検索された値の置換に用いる 文字列 または 配列 です。 |
$original |
必須 | これは、値を見つけて置換したい 文字列 または 配列 です。 |
$limit |
オプション | このパラメータは置換の数を制限します。 |
$count |
オプション | このパラメータは、元の string や array に対して行われた総置換数を示します。 |
ここでは、文字列から数値を求めるためにパターン /[^0-9]/
を用いることにします。文字列から数値を抽出するプログラムは以下の通りです。
<?php
$string = 'Sarah has 4 dolls and 6 bunnies.';
$outputString = preg_replace('/[^0-9]/', '', $string);
echo("The extracted numbers are: $outputString \n");
?>
出力:
The extracted numbers are: 46