この記事では主に、PHPと正規表現を組み合わせて文字列内の数値を取得するいくつかの方法を紹介します。必要な友達は参考にしてください。
PHPは正規表現を組み合わせて文字列内の数値を取得します
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
$patterns = "/d+/" //最初のタイプ ;//$patterns = "/d/" //2 番目のタイプ ;$strs="左:0px;上:202px;幅:90px;高さ:30px"; preg_match_all($patterns,$strs,$arr); print_r($arr);
/***************運用結果********************/ //最初のタイプ 配列 ( [0] => 配列 ( [0] => 0 [1] => 202 [2] => 90 [3] => 30 ) ) //2番目のタイプ 配列 ( [0] => 配列 ( [0] => 0 [1] => 2 [2] => 0 [3] => 2 [4] =>9 [5] => 0 [6] => 3 [7] => 0 ) ) |
PHPは、指定された文字列の番号を取得します $a="12345678が発生した時代に123が発生しました"; $aの番号12345678を取得する関数を与え、そうでない場合は0を返します
良い関数を書くには、
1. 8桁の長さの数字のみに一致します
2. 見つかった場合は変更後の数値を返し、見つからない場合は0を返します
?
1 2 3 |
関数 a($str){ return preg_match('/([0-9]{8})/',$str,$a) ? $a[1] : 0; } |
これをネットで探して試してみたところ、問題ないことが分かりましたが、文字長が d{4} または固定長でないと動作しません
?
1 2 3 4 5 6 7 8 9 |
関数 findNum($str=''){ if(empty($str)){return '';} $reg='/(\d{4}(\.\d+)?)/is';//数値と一致する正規表現 preg_match_all($reg,$str,$result); if(is_array($result)&&!empty($result)&&!empty($result[1])&&!empty($result[1][0])){ $result[1][0]を返す; } 戻る ''; } |
後になって、その中にもいたことが分かりました
?
1 2 |
$str=トリム($str); if (preg_match('|(\d+)|',$str,$r)) return $r[1]; |
これは、任意の連続長の数値を取得できることがわかりました。もちろん、インターネット上でたくさんの方法を見ましたが、機能するものがあったので、再度テストしませんでした。
以上がこの記事の全内容ですが、皆さんに気に入っていただければ幸いです。