検索
ホームページバックエンド開発PHPチュートリアルPHP 正規表現効率の貪欲分析、非貪欲分析、およびバックトラッキング分析 (推奨)

まず、正規表現における貪欲とは何か、非貪欲とは何かについて少し学びましょう。あるいは、何が優先量指定子と一致し、何が優先量指定子を無視するのでしょうか?

わかりました、概念が何なのかはわかりませんが、例を挙げてみましょう。

ある学生は、コンテンツをフィルタリングしたいと考え、通常のルールと手順をこのように書きました。

$str = preg_replace(&#39;%<script>.+?</script>%i&#39;,&#39;&#39;,$str);//非贪婪

何も問題がないように思えますが、実際はそうではありません。

$str = &#39;<script<script>alert(document.cookie)</script>>alert(document.cookie)</script>&#39;;

の場合、上記の手順の後、結果は

$str = &#39;<script<script>alert(document.cookie)</script>>alert(document.cookie)</script>&#39;;
$str = preg_replace(&#39;%<script>.+?</script>%i&#39;,&#39;&#39;,$str);//非贪婪
print_r($str);
//$str 输出为 <script>alert(document.cookie)</script>

であり、まだ彼が望む効果を達成できません。上記は貪欲ではなく、怠惰と呼ばれるものもあります。貪欲でないことを示す記号は、+?、*?、?? などの定量的なメタ文字の後に ? を追加することです (さらに特別なことについては、今後のブログで書きます)。つまり、?を書かない場合は貪欲を意味します。例えば ​​

$str = &#39;<script<script>alert(document.cookie)</script>>alert(document.cookie)</script>&#39;;
$str = preg_replace('%<script>.+</script>%i','',$str);//非贪婪
print_r($str);
//$str 输出为 

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。