preg_quote

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_quote转义正则表达式字符

说明

preg_quote(string $str, string $delimiter = null): string

preg_quote()需要参数 str 并向其中 每个正则表达式语法中的字符前增加一个反斜线。 这通常用于你有一些运行时字符串 需要作为正则表达式进行匹配的时候。

正则表达式特殊字符有: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : - #

注意 / 不是正则表达式特殊字符。

注意:

注意:preg_quote() 的应用场景不是用于 preg_replace() 的 $replacement 字符串参数。

参数

str

输入字符串

delimiter

如果指定了可选参数 delimiter,它也会被转义。这通常用于 转义PCRE函数使用的分隔符。 / 是最常见的分隔符。

返回值

返回转义后的字符串。

更新日志

版本 说明
7.3.0 字符 # 被增加为需要转义的。

范例

示例 #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);
?>

注释

注意: 此函数可安全用于二进制对象。

参见