Función para escapar de los patrones de expresiones regulares antes de aplicarlos en PHP

Use la función preg_quote() en PHP para escapar de los patrones de expresiones regulares antes de que se aplique en tiempo de ejecución. La función preg_quote() coloca una barra invertida delante de cada carácter dentro de la string especificada que formaría parte de la sintaxis de expresiones regulares en PHP, lo que los convierte en secuencias de escape. Estos personajes incluyen:
. \ + * ? [ ^ ] $( ) { } = ! | : – #

Sintaxis:

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

Parámetros:

  • $str: este parámetro contiene la string de entrada.
  • $delimiter: Es un parámetro opcional. El delimitador más común es ‘/’ ya que no es un carácter regex especial que normalmente manejaría preg_quote(). Se utiliza principalmente junto con la función preg_replace() .

Devoluciones: Devuelve el delimitador que contiene la string.

Los siguientes programas ilustran la función preg_quote().

Programa 1:

<?php
  
// Create a string which need to be escaped
$str = "Welcome to GfG! (+ The course fee. $400) /";
      
echo "Before Processing - " . $str . PHP_EOL;
  
// Use preg_quote() on above string
$processedStr = preg_quote($str);
  
// Display the output
echo "After Processing - " . $processedStr;
  
?>
Producción:

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

Observe que se colocó una barra invertida delante de cada carácter especial, pero no para la barra inclinada. Para eso, podemos usar el delimitador, vea el programa a continuación:

Programa 2

<?php
  
// Create a string which need to be escaped
$str = "Welcome to GfG! (+ The course fee. $400) /";
      
echo "Before Processing - " . $str . PHP_EOL;
  
// Use preg_quote() on above string
$processedString = preg_quote($str, '/');
  
// Display the output
echo "After Processing - " . $processedString;
  
?>
Producción:

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

El siguiente programa demuestra el uso combinado de las funciones preg_quote() y preg_replace() .

Programa 3:

<?php
  
// PHP Program emphasize the word within * * and 
// use font style to italic within [ ] using
// both preg_quote() and preg_replace() function
  
$str = "The *article* was written by [GFG]";
      
// The words to be formatted
$word1 = "*article*";
$word2 = "[GFG]";
      
// The first string only applies bold to word 1,
// preg_quote() escapes the * *
$processedStr1 = preg_replace("/" . preg_quote($word1, '/')
            . "/", "<strong>" . $word1 . "</strong>", $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, '/')
            . "/", "<em>" . $word2 . "</em>", $str);
  
echo "ITALIC ONLY - " . $processedStr2 . PHP_EOL;
  
// Combining both text formattings and display
$bothReplacementsCombined = preg_replace("/" .
            preg_quote($word2, '/') . "/",
            "<em>" . $word2 . "</em>", $processedStr1);
  
echo "BOTH COMBINED - " . $bothReplacementsCombined;
  
?>
Producción:

BOLD ONLY - The *article* was written by [GFG]
ITALIC ONLY - The *article* was written by [GFG]
BOTH COMBINED - The *article* was written by [GFG]

Nota: para notar la aplicación de las etiquetas de formato de texto, debe ejecutar PHP en su servidor local y hacer eco en el navegador.

Publicación traducida automáticamente

Artículo escrito por vishal99rkv y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *