📜  在PHP应用之前转义正则表达式模式的函数

📅  最后修改于: 2022-05-13 01:54:10.729000             🧑  作者: Mango

在PHP应用之前转义正则表达式模式的函数

在PHP使用 preg_quote()函数在运行时应用之前转义正则表达式模式。 preg_quote()函数在指定字符串中的每个字符前面放置一个反斜杠,这将是PHP中正则表达式语法的一部分,从而使它们成为转义序列。这些字符包括:
. \ + * ? [ ^ ] $ ( ) { } = ! | : – #

句法:

string preg_quote( string $str, string $delimiter = NULL )

参数:

  • $str:此参数保存输入字符串。
  • $delimiter:可选参数。最常见的分隔符是“/”,因为它不是通常由 preg_quote() 处理的特殊正则表达式字符。主要与 preg_replace()函数结合使用。

返回:它返回包含字符串的分隔符。

下面的程序说明了 preg_quote()函数。



方案一:


输出:
Before Processing - Welcome to GfG! (+ The course fee. $400) /
After Processing - Welcome to GfG\! \(\+ The course fee\. \$400\) /

请注意,在每个特殊字符前都放置了一个反斜杠,但对于正斜杠则没有。为此,我们可以使用分隔符,参见下面的程序:

方案二


输出:
Before Processing - Welcome to GfG! (+ The course fee. $400) /
After Processing - Welcome to GfG\! \(\+ The course fee\. \$400\) \/

下面的程序演示了preg_quote()preg_replace()函数的组合使用。

方案三:

" . $word1 . "", $str);
  
echo "BOLD ONLY - " . $processedStr1 . PHP_EOL;
  
// The second string only applies italics to 
// word 2, preg_quote() escapes the [ ]
$processedStr2 = preg_replace("/" . preg_quote($word2, '/')
            . "/", "" . $word2 . "", $str);
  
echo "ITALIC ONLY - " . $processedStr2 . PHP_EOL;
  
// Combining both text formattings and display
$bothReplacementsCombined = preg_replace("/" .
            preg_quote($word2, '/') . "/",
            "" . $word2 . "", $processedStr1);
  
echo "BOTH COMBINED - " . $bothReplacementsCombined;
  
?>
输出:
BOLD ONLY - The *article* was written by [GFG]
ITALIC ONLY - The *article* was written by [GFG]
BOTH COMBINED - The *article* was written by [GFG]

注意:要注意文本格式标记的应用,您应该在本地服务器上运行PHP并回显到浏览器。