downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Meta-caracteres> <Introducción
[edit] Last updated: Fri, 25 May 2012

view this page in

Delimitadores

Cuando se usan funciones PCRE, se requiere que el patrón esté encerrado entre delimitadores. Un delimitador puede ser cualquier carácter no alfanumérico, que no sea una barra invertida, y que no sea un espacio en blanco.

Los delimitadores que se usan a menudo son barras oblícuas (/), signos de número (#) y tildes (~). Los siguientes ejemplos son todos patrones delimitados válidos.

/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%

Si el delimitador necesita ser comparado dentro del patrón se debe escapar usando una barra invertida. Si el delimitador aparece a menudo dentro del patrón, es una buena idea escoger otro delimitador para aumentar la legibilidad.

/http:\/\//
#http://#
La función preg_quote() se puede usar para escapar una cadena para inyectarla dentro de un patrón y su segundo parámetro opcional de puede usar parar especificar el delimitador a escapar.

Además de los delimitadores anteriormente mencionados, también es posible usar delimitadores estilo paréntesis donde los paréntesis de apertura y cierre son el delimitador de inicio y final, respectivamente.

{this is a pattern}

Puede añadir modificadores de patrón después del delimitador final. El siguiente es un ejemplo de comparación insensible a mayúsculas-minúsculas:

#[a-z]#i



add a note add a note User Contributed Notes Delimitadores
adelbenzarti at yahoo dot fr 02-Mar-2012 11:09
When you use meta-characters in the regular expression, avoid using them as delimiters. In preference, do not use the meta-characters as delimiters at all.
Besides, you must not forget to escape the delimiter if it exists in the user text. The function preg_quote permits to escape the delimiter  if it exists in the user text.
<?php
  $usertext
=preg_quote($usertext,$delimiter);
?>
Anonymous 31-Oct-2011 02:38
other possible delimiters include @,!, <>

using symbols (such as | ) that have meaning inside a regex as delimiters is probably going to be counterproductive.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites