ホームページ >バックエンド開発 >PHPの問題 >PHPで通常のルールを使用して文字列内の文字を除外する方法

PHPで通常のルールを使用して文字列内の文字を除外する方法

青灯夜游
青灯夜游オリジナル
2022-12-15 15:30:295634ブラウズ

2 つの方法: 1. preg_replace() を使用して、正規表現の検索と置換を実行します。文字列内の一致する文字を空の文字に置き換えるだけで済みます。構文 "preg_replace(register, " ", $str )」。 2. preg_match_all() を使用して、文字列内の正規表現に一致するすべての結果を検索します。一致した結果はそれぞれ、配列 $array に配置されます。構文は "preg_match_all(register, $str, $array);" です。

PHPで通常のルールを使用して文字列内の文字を除外する方法

このチュートリアルの動作環境: Windows7 システム、PHP8.1 バージョン、DELL G3 コンピューター

とは正規表現 式

正規表現は文字列操作の論理式です。事前定義された特定の文字とこれらの特定の文字の組み合わせを使用して、「正規の文字列」を形成します。この「ルール」 string" は、文字列のフィルタリング ロジックを表現するために使用されます。

正規表現は、特定のルールでパターンを構築し、入力文字列情報と比較し、特定の関数で使用して文字列の一致、検索、置換、分割などの操作を実行します。

php は正規表現を使用して文字列をフィルタリングします

PHP では、正規表現を使用して文字列をフィルタリングし、指定した文字列を除外 (削除) または抽出できますキャラクター。

方法 1. preg_replace() 関数を使用する

preg_replace() 関数は、正規表現の検索と置換を実行でき、強力な文字列置換処理関数です。

preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count]])
  • は、パターンに一致する件名の部分を検索し、置換で置換することを意味します。オプションのパラメータ制限は、置換の最大数を設定するために使用されます (デフォルト値は -1 です)。無制限にすることもできます)。

例:

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);  
$str =&#39;0我是123456一段测试的字789符串0&#39;;
echo "原字符串:".$str."<br>";
$result = preg_replace("/[^0-9]/", "", $str);
echo "过滤后字符串:".$result;
?>

preg_replace("/[^0-9]/", "", $str) 0~9 の間の数字以外の文字を照合し、これらの文字をヌル文字に置き換える (つまり、これらの文字を削除する) と、数字だけが残ります:

PHPで通常のルールを使用して文字列内の文字を除外する方法

方法 2: preg_match_all() 関数を使用する

preg_match_all() 関数は、正規表現に一致する文字列内のすべての結果を検索できます。グローバルな正規表現マッチングを実行する関数。その構文形式は次のとおりです:

preg_match_all($pattern, $subject [, &$matches [, $flags = PREG_PATTERN_ORDER [, $offset = 0 ]]])
  • $パターン正規表現

  • ##$マッチング文字列

  • $matches すべての一致結果 (配列)

preg_match_all() は、一度正常に一致させたい場合、すべての結果と一致します。後で一致を停止するには、次のようにします。 preg_match() 関数を使用する必要があります。

例:

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);  
$str =&#39;0我是123456一段测试的字789符串0&#39;;
echo "原字符串:".$str."<br><br>";

$result = &#39;&#39;;
preg_match_all(&#39;/\d+/&#39;,$str,$array);
echo "过滤结果:";
var_dump($array);


foreach($array as $arr){
	foreach($arr as $value){
		$result .= $value;
	}
}
echo "过滤后字符串:".$result;
?>

preg_match_all('/\d /',$str,$array) は、文字列 $str 内の複数の検索に次の部分文字列のみが含まれることを意味します。 0~9 の数字を入力し、一致した結果はそれぞれ配列 $array に配置されます。 var_dump($array) を使用してこの配列を出力すると、次のようになります。

PHPで通常のルールを使用して文字列内の文字を除外する方法

結果の配列

$array が次のとおりであることがわかります。 2 次元配列の場合、一致する結果を含む要素が内部配列です。これらの要素を文字列に結合したい場合は、2 レベルの foreach ループをネストする必要があります。

foreach($array as $arr){
	foreach($arr as $value){
		$result .= $value;
	}
}
echo "过滤后字符串:".$result;

PHPで通常のルールを使用して文字列内の文字を除外する方法## 推奨学習: 「

PHP ビデオ チュートリアル

以上がPHPで通常のルールを使用して文字列内の文字を除外する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。