ホームページ > バックエンド開発 > PHPチュートリアル > PHP の `preg_quote()` 関数は、正規表現パターンを安全に使用するためにエスケープ文字をどのように使用できますか?

PHP の `preg_quote()` 関数は、正規表現パターンを安全に使用するためにエスケープ文字をどのように使用できますか?

Mary-Kate Olsen
リリース: 2024-12-22 03:20:11
オリジナル
334 人が閲覧しました

How Can PHP's `preg_quote()` Function Escape Characters for Safe Regex Pattern Use?

PHP での正規表現パターンの文字のエスケープ

PHP では、preg_quote() 関数により、正規表現内の文字をエスケープする方法が提供されます ( Regex) パターンは、Regex エンジンにとって特別な意味を持ちます。これにより、これらの文字がパターンの一部として解釈されることがなくなり、競合を引き起こすことなく別の Regex パターン内で式を使用できるようになります。

C# の Regex.Escape() 関数と同様に、preg_quote() は正規表現構文の一部である入力文字列内のすべての文字の前にバックスラッシュ () を追加します。これらの特殊文字には、

  • が含まれます。 * ? [ ^ ] $ ( ) { } = ! | : -

デフォルトでは、preg_quote() は正規表現パターンを囲むために使用される区切り文字をエスケープしません。区切り文字もエスケープされるようにするには、区切り文字を関数の 2 番目のパラメータとして指定します。

例:

URL があるとします。$url = 'http ://stackoverflow.com/questions?sort=newest' で囲まれた文字列内で検索したいホワイトスペース:

// Escape the characters in the URL and the forward slash (/) delimiter
$escapedUrl = preg_quote($url, '/');

// Enclose the Regex pattern in forward slashes
$regex = '/\s' . $escapedUrl . '\s/';

// Find occurrences of the URL in the string
preg_match($regex, $haystack, $matches);

var_dump($matches);
ログイン後にコピー

この例では、preg_quote() は URL 内のドット (.)、疑問符 (?)、等号 (=) とすべてのスラッシュをエスケープします。その結果、作成した Regex パターンは、干し草の山の文字列内の URL を正常に見つけることができます。

以上がPHP の `preg_quote()` 関数は、正規表現パターンを安全に使用するためにエスケープ文字をどのように使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート