前の記事「PHP 文字列学習: 数字だけを残して他の文字を削除する方法」では、for ループと in_array() または is_numeric() 関数を使用して文字列を抽出する方法を紹介しました。数字。今回は引き続き PHP 文字列の学習と練習を行い、文字列内の数値を抽出する他のいくつかの方法を紹介します。
文字列からの数字の抽出は、本質的には文字列のフィルタリング操作です。文字列フィルタリングを見たとき、「正規表現」を思い出しました。
正規表現は、文字列操作の論理式です。正規表現は、いくつかの事前定義された特定の文字とこれらの特定の文字の組み合わせを使用して、「ルール文字列」を形成します。この「ルール文字列」「」は、次のフィルタリング ロジックを表現するために使用されます。文字列。
正規表現は、特定のルールでパターンを構築し、入力文字列情報と比較し、特定の関数で使用して文字列の一致、検索、置換、分割などの操作を実行します。
正規表現を使用して文字列をフィルタリングし、文字列内の数字のみを抽出し、これらの数字で構成される部分文字列を返す方法を見てみましょう。
たとえば、次の文字列
$str ='0我是123456一段测试的字789符串0';
を指定すると、数字「01234567890
」で構成される部分文字列を返したいとします。
方法 1. preg_replace() 関数を使用する
上記のキー コードを分析します:
preg_replace("/ [^0-9]/", "", $str)
は、0 から 9 までの数字以外の文字を照合し、これらの文字を空の文字に置き換える、つまりこれらの文字を削除することを意味します。数字だけが残るので、出力結果は次のようになります。
preg_replace() 関数を簡単に見てみましょう
preg_replace() 関数正規表現検索・置換は強力な文字列置換処理関数であり、構文形式は「preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count ]])#」となります。 ##" は、件名内でパターンに一致する部分を検索し、それを置換で置換することを意味します。オプションのパラメーター制限は、置換の最大数を設定するために使用されます (デフォルト値は -1 で、無制限にすることができます)。
方法 2: preg_match_all() 関数を使用する
preg_match_all('/\ d /',$str,$array) は、文字列
$str 内で 0 から 9 までの数字のみを含む部分文字列を複数回検索し、毎回一致する結果を配列に入れることを意味します。
$配列。
var_dump($array) を使用してこの配列を出力すると、次のようになります。
$array が次のとおりであることがわかります。 2 次元配列の場合、一致する結果を含む要素が内部配列です。これらの要素を文字列に結合する場合は、foreach ループを 2 つのレベルでネストする必要があります。
foreach($array as $arr){ }
$arr に割り当てます。これにより、2 番目のループで走査する必要がある配列は
$arr になります
foreach($arr as $value){ $result .= $value; }
$result に変換するため、最初は
$result を空の文字列にする必要があります。
preg_match_all() 関数を簡単に見てみましょう。
preg_match_all() 関数は、正規表現に一致する文字列内のすべての結果を検索できます。グローバルな正規表現マッチングを実行する関数です。その構文形式はpreg_match_all($pattern, $subject [, &$matches [, $flags = PREG_PATTERN_ORDER [, $offset = 0 ]]])
$pattern 正規表現
php ビデオチュートリアル
最後に、古典的なコース「PHP 文字列処理 (翡翠少女般若心経編)
」を読むことをお勧めします。無料です。ぜひ学んでください。 !以上がPHP 文字列学習では、通常のフィルターを使用して文字をフィルターし、数値を返します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。