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.
El soporte de expresiones regulares es provisto por el paquete de
biblioteca PCRE, el cual es software de código abierto,
escrito por Philip Hazel, y con copyright de la Universidad de
Cambridge, Inglaterra. Se encuentra disponible en ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/.
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.
Esta extensión no tiene directivas de
configuración en php.ini.
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.
Tabla 1. constantes PREG
| 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().
|
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
|