PHP 5.6.29 Released

preg_quote

(PHP 4, PHP 5, PHP 7)

preg_quoteAdiciona escape em caracteres da expressão regular

Descrição

string preg_quote ( string $str [, string $delimiter ] )

preg_quote() pega str e coloca uma barra invertida antes de cada caractere que é parte da sintaxe da expressão regular. Isto é útil se você tem uma string em run-time que você precisa combinar em algum texto e a string pode conter caracteres especiais de regex.

Os caracteres especiais da expressão regular são . \ + * ? [ ^ ] $ ( ) { } = ! < > | :

Parâmetros

str

A string de entrada.

delimiter

Se o opcional delimiter é especificado, ele também terá escape antecedendo. Isto é útil para adicionar escape em delimitadores que é requerido pelas funções PCRE. A / é o delimitador mais comumente usado.

Valor Retornado

Retorna a string modificada.

Exemplos

Exemplo #1 Exemplo da preg_quote()

<?php
$keywords 
'$40 for a g3/400';
$keywords preg_quote($keywords'/');
echo 
$keywords// returns \$40 for a g3\/400
?>

Exemplo #2 Deixando em itálico uma palavra de um texto

<?php
// In this example, preg_quote($word) is used to keep the
// asterisks from having special meaning to the regular
// expression.

$textbody "This book is *very* difficult to find.";
$word "*very*";
$textbody preg_replace ("/" preg_quote($word) . "/",
                          
"<i>" $word "</i>",
                          
$textbody);
?>

Notas

Nota: Esta função é binary-safe.

add a note add a note

User Contributed Notes 2 notes

up
34
Anonymous
8 years ago
Wondering why your preg_replace fails, even if you have used preg_quote?

Try adding the delimiter / - preg_quote($string, '/');
up
7
zooly
7 years ago
To escape characters with special meaning, like: .-[]() and so on, use \Q and \E.

For example:

<?php echo ( preg_match('/^'.( $myvar = 'te.t' ).'$/i', 'test') ? 'match' : 'nomatch' ); ?>

Will result in: match

But:

<?php echo ( preg_match('/^\Q'.( $myvar = 'te.t' ).'\E$/i', 'test') ? 'match' : 'nomatch' ); ?>

Will result in: nomatch
To Top