Funciones de Expresiones Regulares (Compatibles con Perl)

CXI. Funciones de Expresiones Regulares (Compatibles con Perl)

Introducci贸n

La sintaxis para los patrones usados en 茅stas funciones se asemeja considerablemente con la sintaxis de Perl. La expresi贸n debe estar rodeada por delimitadores, una barra acostada (/), por ejemplo. Cualquier caracter puede ser usado como delimitador siempre y cuando no sea alfanum茅rico ni la barra invertida (\). Si el caracter delimitador tiene que ser usado en la expresi贸n misma, necesita ser escapado por la barra invertida. A partir de PHP 4.0.4, puede usar tambi茅n los delimitadores de coincidencia tipo Perl (), {}, [], y <>. Vea Sintaxis de los Patrones para una explicaci贸n detallada.

El delimitador de cierre puede estar seguido de varios modificadores que afectan las coincidencias. Vea Modificadores de Patr贸n.

PHP soporta tambi茅n expresiones regulares usando una sintaxis POSIX-extendida, por medio de las funciones regex POSIX-extendidas.

Nota: Esta extensi贸n mantiene un cach茅 global por-hilo de expresiones regulares compiladas (hasta un m谩ximo de 4096).

Aviso

Es importante que conozca sobre las limitaciones de PCRE. Lea http://www.pcre.org/pcre.txt para m谩s informaci贸n.

Requisitos

No se necesitan bibliotecas externas para construir esta extensi贸n

Instalaci贸n

A partir de PHP 4.2.0, estas funciones est谩n habilitadas por defecto. Puede deshabilitar las funciones pcre con --without-pcre-regex. Use --with-pcre-regex=DIR para especificar la ubicaci贸n de los archivos de inclusi贸n y bibliotecas de PCRE, si no desea usar la biblioteca incluida. En versiones m谩s antiguas, usted tendr谩 que configurar y compilar PHP con --with-pcre-regex[=DIR] para poder hacer uso de estas funciones.

La versi贸n para Windows de PHP tiene soporte nativo para esta extensi贸n. No se necesita cargar ninguna extensi贸n adicional para usar estas funciones.

Configuraci贸n en tiempo de ejecuci贸n

Esta extensi贸n no tiene directivas de configuraci贸n en php.ini.

Tipos de recursos

Esta extensi贸n no tiene ning煤n tipo de recurso definido.

Constantes predefinidas

Estas constantes est谩n definidas por esta extensi贸n y estar谩n disponibles solamente cuando la extensi贸n ha sido o bien compilada dentro de PHP o grabada din谩micamente en tiempo de ejecuci贸n.

Tabla 1. constantes PREG

constantedescripci贸n
PREG_PATTERN_ORDER Ordena los resultados de modo que $coincidencias[0] sea una matriz de coincidencias del patr贸n completo, $coincidencias[1] sea una matriz de cadenas que coincidieron con el primer subpatr贸n entre par茅ntesis, y as铆 sucesivamente. Esta bandera s贸lo es usada con preg_match_all().
PREG_SET_ORDER Ordena los resultados de modo que $coincidencias[0] resulte ser una matriz del primer conjunto de coincidencias, $matches[1] sea una matriz del segundo conjunto de coincidencias, y as铆 sucesivamente. Esta bandera 煤nicamente es usada con preg_match_all().
PREG_OFFSET_CAPTURE Consulte la descripci贸n de PREG_SPLIT_OFFSET_CAPTURE. Esta bandera est谩 disponible desde PHP 4.3.0.
PREG_SPLIT_NO_EMPTY Esta bandera le dice a preg_split() que devuelva 煤nicamente resultados que no sean vac铆os.
PREG_SPLIT_DELIM_CAPTURE Esta bandera le indica a preg_split() que capture las expresiones entre par茅ntesis dentro del patr贸n de delimitaci贸n tambi茅n. Esta bandera est谩 disponible desde PHP 4.0.5.
PREG_SPLIT_OFFSET_CAPTURE Si esta bandera est谩 activa, la posici贸n de desplazamiento correspondiente a cada coincidencia ser谩 devuelta tambi茅n. Note que esto modifica el valor devuelto a una matriz en la que cada elemento es tambi茅n una matriz que consiste de la cadena coincidente en el sub铆ndice 0 y su posici贸n de desplazamiento al interior de la cadena de asunto en el sub铆ndice 1. Esta bandera est谩 disponible a partir de PHP 4.3.0 y s贸lo es usada por preg_split().

Ejemplos

Ejemplo 1. Ejemplos de patrones v谩lidos

  • /<\/\w+>/

  • |(\d{3})-\d+|Sm

  • /^(?i)php[34]/

  • {^\s+(\s+)?$}

Ejemplo 2. Ejemplos de patrones inv谩lidos

  • /href='(.*)' - carece de delimitador de cierre

  • /\w+\s*\w+/J - modificador 'J' desconocido

  • 1-\d3-\d3-\d4| - carece del delimitador de apertura

Tabla de contenidos
Modificadores de Patr贸n -- Describe los posibles modificadores en patrones de expresiones regulares
Sintaxis de los Patrones -- Describe la sintaxis de expresiones regulares PCRE
preg_grep --  Devuelve una matriz con las entradas que coinciden con el patr贸n
preg_match_all -- Realizar una comparaci贸n global con una expresi贸n regular
preg_match -- Realizar una comparaci贸n de expresi贸n regular
preg_quote -- Escapar caracteres de expresiones regulares
preg_replace_callback -- Realizar una b煤squeda con expresiones regulares y generar reemplazos usando una llamada de retorno
preg_replace -- Realizar una operaci贸n de b煤squeda y reemplazo con expresiones regulares
preg_split -- Separar una cadena por una expresi贸n regular