ホームページ  >  記事  >  バックエンド開発  >  PHPの定期置換preg_replace関数の使い方

PHPの定期置換preg_replace関数の使い方

coldplay.xixi
coldplay.xixiオリジナル
2020-08-06 14:29:072039ブラウズ

PHP の通常の置換 preg_replace 関数の使用方法: 1. 0 文字を削除します。コードは [preg_replace("/0/","",$str)]; 2. すべての数字を削除します。コードは次のとおりです。 [preg_replace ("/[0-9]/","",$str)]。

PHPの定期置換preg_replace関数の使い方

PHP の通常の置換 preg_replace 関数の使用方法:

<?php
$str="as2223adfsf0s4df0sdfsdf";
echo preg_replace("/0/","",$str);//去掉0字符,此时相当于 replace的功能, preg_replace("/0/","A",$str); 这样就是将0变成A的意思了
echo preg_replace("/[0-9]/","",$str);//去掉所有数字
echo preg_replace("/[a-z]/","",$str); //这样是去掉所有小写字母
echo preg_replace("/[A-Z]/","",$str); //这样是去掉所有大写字母
echo preg_replace("/[a-z,A-Z]/","",$str); //这样是去掉所有字母
$str="as2223adfsAAf0s4df0s中国人dD中南海DDfsdf";
echo preg_replace("/[a-z,A-Z,0-9]/","",$str); //去掉所有字母和数字
?>

上記の例を見れば、誰もが知っていると思います。 [ ] そしてその中身。また、一致する文字列は / / で追加する必要があることもわかります (例の最初のパラメータを参照)

<?php
$str="acsdcs<55555555>sc<6666>sdcd";
echo preg_replace("/<.*>/","",$str);

は、92a99cc204bb239876923b2205186489 で終わる部分の出力結果は次のようになります: acsdcssdcd

注: 上記の .* は、dc67171f8176a5b97ef5d2b371345a97 はすべてを削除することです。. は任意の文字を表し、* は任意の数字を表します

さて、変更しましょう。任意の数字にしたくない場合はどうすればよいでしょうか?

$str="acsdcs<55555555>sc<6666>sdcd";
echo preg_replace("/<.{4}>/","",$str);

//このときの出力: acsdcs02eac4294052cb4fb9d07d6c10a3ea36scsdcd {4} が条件を指定しているため、a8093152e673feb7aba1828c43532094 内の 4 文字だけが条件を満たすため、02eac4294052cb4fb9d07d6c10a3ea36 は条件を満たしません、交換できません。

注: この時点で、もう 1 つの知識ポイントを学びました。 {数値} は、前の数値を指定することを意味します。 * は、任意の数値 (0 ~ 無制限) を意味します。

は、* に加えて、繰り返しの数を意味します。 、{指定された回数}、多くの表現があります:

<?php
$str="acsdcs<55555555>sc<6666>sd<>cd";
echo preg_replace("/<[0-9]*>/","",$str);
//输出acsdcscd
echo "<hr>";
echo preg_replace("/<[0-9]+>/","",$str);
//输入acsdcsscsd<>cd
?>

上の例は、* と * の違いを表現するためのものです。* は 0 回または n 回繰り返すことを意味し、1 回以上繰り返すことを意味します。一例では、406b8fa7a5d4d3361b8eae30a60bc812 は、条件を満たすには a8093152e673feb7aba1828c43532094 に少なくとも 1 つの数値が存在する必要があることを意味します。

* を使用した場合と上記の例で使用した場合の出力結果が異なる理由は、現時点では誰もが知っていると思います。

もう一度来てください:

<?php
$str="acsdcs<55555555>sc<6666>sd<>cd";
echo preg_replace("/<[0-9]?>/","",$str);
//输出acsdcs<55555555>sc<6666>sdcd
?>

[0-9 を見てください。 】? ここでの?は、0回または1回の場合、1回を超えると条件を満たさないことを意味します。

要約すると、上記では * ? と中括弧 {} が繰り返しの数を表す方法を学びました。

関連する学習に関する推奨事項: php プログラミング (ビデオ)

以上がPHPの定期置換preg_replace関数の使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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