La sintaxis para los patrones usados en estas 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.
Note: Esta extensión mantiene un caché global por-hilo de expresiones regulares compiladas (hasta un máximo de 4096).
Es importante que conozca sobre las limitaciones de PCRE. Lea » http://www.pcre.org/pcre.txt para más información.
No se necesitan bibliotecas externas para construir esta extensió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.
El comportamiento de estas funciones está afectado por los valores definidos en php.ini.
Name | Default | Changeable | Changelog |
---|---|---|---|
pcre.backtrack_limit | "100000" | PHP_INI_ALL | Available since PHP 5.2.0. |
pcre.recursion_limit | "100000" | PHP_INI_ALL | Available since PHP 5.2.0. |
A continuación se presenta una corta explicación de las directivas de configuración.
PCRE's backtracking limit.
PCRE's recursion limit. Please note that if you set this value to a high number you may consume all the available process stack and eventually crash PHP (due to reaching the stack size limit imposed by the Operating System).
Esta extensión no tiene ningún tipo de recurso definido.
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.
constante | descripció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(). |
PREG_NO_ERROR | Devuelta por preg_last_error() si no ocurrieron errores. Disponible desde PHP 5.2.0. |
PREG_INTERNAL_ERROR | Devuelta por preg_last_error() si hubo un error interno de PCRE. Disponible desde PHP 5.2.0. |
PREG_BACKTRACK_LIMIT_ERROR | Devuelta por preg_last_error() si el límite de referencias hacia atrás fue consumido. Disponible desde PHP 5.2.0. |
PREG_RECURSION_LIMIT_ERROR | Devuelta por preg_last_error() si el límite de recursión fue consumido. Disponible desde PHP 5.2.0. |
PREG_BAD_UTF8_ERROR | Devuelta por preg_last_error() si el último error fue causado por datos UTF-8 inválidos (solo cuando se ejecuta una expresión regular en modo UTF-8). Disponible desde PHP 5.2.0. |
PCRE_VERSION | Versión y fecha de lanzamiento de PCRE (p.ej. "7.0 18-Dec-2006"). Disponible desde PHP 5.2.4. |
Example#1 Ejemplos de patrones válidos
Example#2 Ejemplos de patrones inválidos