Modificadores de Patrón

Modificadores de Patrón -- Describe los posibles modificadores en patrones de expresiones regulares

Descripción

Los modificadores PCRE disponibles en la actualidad son listados a continuación. Los nombres entre paréntesis se refieren a nombres internos de PCRE para dichos modificadores. Los espacios y saltos de línea son ignorados en los modificadores, otros caracteres generan error.

i (PCRE_CASELESS)

Si éste modificador es definido, las letras en el patrón coincidirán tanto con letras mayúsculas como minúsculas.

m (PCRE_MULTILINE)

Por defecto, PCRE trata la cadena de asunto como si consistiera de una "única" línea de caracteres (aun si en realidad contiene varias). El meta-caracter de "inicio de línea" (^) coincide sólo al principio de la cadena, mientras que el meta-caracter de "fin de línea" ($) coincide sólo el final de la cadena, o antes un caracter de nueva línea final (a menos que el modificador D sea definido). Esto es igual que en Perl.

Cuando este modificador es definido, los constructores de "inicio de línea" y "fin de línea" coinciden inmediatamente después o inmediatamente antes de cualquier caracter de nueva línea, respectivamente, al igual que al comienzo o final absoluto de la cadena. Este comportamiento es equivalente al modificador /m del Perl. Si no hay caracteres "\n" en la cadena de asunto, o no hay ocurrencias de ^ o $ en un patrón, este modificador no tiene efecto alguno.

s (PCRE_DOTALL)

Si se define éste modificador, un meta-caracter de punto en el patrón coincidirá con todos los caracteres, incluyendo el de nueva línea. Sin él, los saltos de línea son excluídos. Este modificador es equivalente a /s en Perl. Una clase negativa como [^a] siempre coincide con un caracter de nueva línea, independientemente del uso de este modificador.

x (PCRE_EXTENDED)

Si éste modificador es definido, los caracteres de datos que representan espacios en blanco en el patrón son completamente ignorados, excepto cuando son escapados o cuando se encuentran al interior de una clase caracter, y los caracteres entre un # sin escapar fuera de una clase de caracter y el siguiente caracter de nueva línea, inclusive, son ignorados también. Esto es equivalente al modificador /x de Perl y hace posible incluir comentarios al interior de patrones complicados. Note, sin embargo, que esto es sólo aplicable a caracteres de datos. Los caracteres de espacio en blanco nunca pueden aparecer en secuencias de caracteres especiales en un patrón, por ejemplo al interior de la secuencia (?(, la cual inicia un sub-patrón condicional.

e

Si éste modificador es usado, preg_replace() realiza las sustituciones normales de referencias hacia atrás en la cadena de reemplazo, evalúa ésta como código PHP y usa el resultado para reemplazar la cadena de búsqueda. Las comillas sencillas y dobles son escapadas con barras invertidas en las referencias hacia atrás sustituidas.

Sólo preg_replace() usa éste modificador; es ignorado por otras funciones de PCRE.

Nota: Este modificador no se encontraba disponible en PHP 3.

A (PCRE_ANCHORED)

Si este modificador es definido, el patrón es obligado a ser "anclado", es decir, es limitado para que coincida sólo al inicio de la cadena que está siendo analizada (la "cadena de asunto"). Este efecto puede alcanzarse también mediante las construcciones apropiadas en el patrón mismo, la cual es la única manera de hacerlo en Perl.

D (PCRE_DOLLAR_ENDONLY)

Si este modificador es definido, un meta-caracter de signo dólar en el patrón coincide únicamente al final de la cadena de asunto. Sin éste modificador, un dólar coincide también inmediatamente antes del caracter final si éste es un salto de línea (pero no antes de cualquier otra nueva línea). Este modificador es ignorado si m es definido. No hay equivalente en Perl para este modificador.

S

Cuando un patrón va a ser usado varias veces, vale la pena dedicar más tiempo a analizarlo para acelerar el proceso de comparaciones. Si éste modificador es definido, entonces se realizará este análisis adicional. Por el momento, el estudio de un patrón es útil sólo para patrones no-anclados que no tienen un carácter de inicio único arreglado.

U (PCRE_UNGREEDY)

Este modificador invierte la "ambición" de los cuantificadores, de modo que no sean codiciosos por defecto, en su lugar se vuelven codiciosos si son seguidos por un "?". No es compatible con Perl. También puede definirse con un modificador (?U) al interior del patrón o con un signo de interrogación antes del cuantificador (p.ej. .*?).

X (PCRE_EXTRA)

Este modificador activa funcionalidad adicional de PCRE que no es compatible con Perl. Cualquier barra invertida en un patrón que sea seguida por una letra que no tenga un significado especial provocará un error, logrando en efecto reservar éstas combinaciones para futuras ampliaciones. Por defecto, como en Perl, una barra invertida seguida por una letra sin un significado especial es tratada como un literal. No hay otras características controladas por este modificador a la fecha de hoy.

u (PCRE_UTF8)

Este modificador activa funcionalidad adicional de PCRE que no es compatible con Perl. Las cadenas de patrones son tratadas como UTF-8. Este modificador se encuentra disponible a partir de PHP 4.1.0 o versiones posteriores en Unix, y desde PHP 4.2.3 en win32. La validez UTF-8 del patrón es verificada desde PHP 4.3.5.

Hosting by: hurra.com
Generated: 2007-01-26 18:01:09