preg_quote

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

preg_quote -- 正規表現文字をクオートする

説明

string preg_quote ( string str [, string delimiter] )

preg_quote() は、str を引数とし、正規表現構文の特殊文字の前にバックスラッシュを挿入します。 この関数は、実行時に生成される文字列をパターンとしてマッチングを行う必要があり、 その文字列には正規表現の特殊文字が含まれているかも知れない場合に有用です。

オプションの delimiter を指定すると、 ここで指定した文字もエスケープされます。これは、PCRE 関数が使用する デリミタをエスケープする場合に便利です。'/' がデリミタとしては 最も一般的に使用されています。

正規表現の特殊文字は、次のものです。 . \ + * ? [ ^ ] $ ( ) { } = ! < > | :

例 1. preg_quote() の例

<?php
$keywords
= '$40 for a g3/400';
$keywords = preg_quote($keywords, '/');
echo
$keywords; // \$40 for a g3\/400 を返す。
?>

例 2. テキストの中の単語を置換する

<?php
// この例では、preg_quote($word) を使って、アスタリスクが
// 正規表現での特殊な意味を帯びないようにしている。

$textbody = "This book is *very* difficult to find.";
$word = "*very*";
$textbody = preg_replace ("/" . preg_quote($word) . "/",
                          
"<i>" . $word . "</i>",
                          
$textbody);
?>

注意: この関数はバイナリデータに対応しています。