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 サイトの他の関連記事を参照してください。