PHP preg_quote() 函数在正则表达式语法中的每个字符前面放置一个反斜杠。如果您有一个需要在某些文本中匹配的运行时字符串,并且该字符串可能包含特殊的正则表达式字符,那么这非常有用。
特殊的正则表达式字符是: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : - #
请注意 / 不是特殊的正则表达式字符。
语法
preg_quote(str, delimiter)
参数
str | 必填。 指定输入字符串。 |
delimiter | 可选。 当指定(单个字符)时,它也会被转义。这对于转义 PCRE 函数所需的分隔符很有用。 / 是最常用的分隔符。默认值为 null。 |
返回值
返回带引号(转义)的字符串。
示例:preg_quote () 示例
下面的示例显示了 preg_quote() 函数的用法。
<?php
//需要转义的字符串
$str = 'send $100 to D/303';
//使用preg_quote函数
$str = preg_quote($str, '/');
//显示结果
echo $str;
?>
上述代码的输出将是:
send \$100 to D\/303
示例:将给定文本中的单词斜体化
在下面的示例中,单词包含星号的内容为斜体。由于星号在正则表达式中具有特殊含义。因此,首先使用 preg_quote() 函数对其进行转义。
<?php
//星号在正则中有特殊含义
//表达式,因此应该首先转义
$str = "This book is *very* difficult to find.";
$word = "*very*";
//将$word斜体化
$str = preg_replace ("/".preg_quote($word, '/')."/",
"<i>".$word."</i>", $str);
//显示结果
echo $str;
?>
上述代码的输出将是:
This book is <i>*very*</i> difficult to find.