..


Enlaces patrocinados

PCRE funciones de expresiones regulares (y diferencias con las funciones POSIX)

Artículo escrito por Max Bossi
Página 1 de 4

Hemos tenido ya insinuado en los últimos días a través de las páginas de nuestro blog, pero hoy me gustaría investigar un tema que creo que será de interés para los miles de desarrolladores - como yo - el uso diario PHP para desarrollar sus aplicaciones web.

Desde la versión 5.3 de PHP, de hecho, los desarrolladores que desean explotar el potencial de las expresiones regulares no pueden hacer uso de las funciones POSIX (por así decirlo ereg () y la familia), sino que debe, necesariamente, el uso de las funciones PCRE (Perl Compatible Regular expresiones), por ejemplo, preg_match () .

Las funciones PCRE integrado en PHP le permiten utilizar la sintaxis típica de expresiones regulares de Perl (más precisamente, la implementación actual ofrece apoyo a la sintaxis de Perl 5.005), que es ligeramente diferente a la de las funciones POSIX. Para más información sobre la sintaxis de PCRE es posible consultar el manual de disponible en el sitio web oficial PCRE.org.

Comparaciones: el preg_match ()

Si desea hacer una comparación entre una cadena y un modelo (un modelo de escrito en forma de expresiones regulares) tendrá que utilizar preg_match () que, de hecho, sustituir ereg () y eregi ().

Utilizando preg_match () es de uso común, muy sencillo: pasar de la función del patrón y la cadena de control. Si el patrón se cumple, la función devuelve 1 si 0 (o FALSE si ocurre un error).

De hecho, la migración de ereg () no es cosa complicada. Se necesita algo de poco de ingenio en la formulación del modelo.

He aquí un ejemplo:

 



 <? Php







 if (preg_match ('/ mrwebmaster / i', 'MrWebmaster Viva! ")) {



  



 echo "encontrado";







 Else {}



  



 echo "no encontrado";







 }







 >

 
Que es lo mismo que:
 



 <? Php







 if (eregi ("mrwebmaster ',' MrWebmaster Viva!")) {



  



 echo "encontrado";







 Else {}



  



 echo "no encontrado";







 }







 >

 

En nuestro ejemplo sencillo de utilizar preg_match () que utiliza la cadena como un patrón

 



 / Mrwebmaster / s

 
Vamos a ver la sintaxis:
  • / ... / - Delimitar el principio y el final de la expresión;
  • mrwebmaster - es una cadena simple que desea revisar el texto que se pasa como segundo argumento;
  • i - "i" después de que el delimitador de cierre indica que la búsqueda no debe ser entre mayúsculas y minúsculas (tal como se hizo mediante el uso de la función eregi ()). Técnicamente, este "yo" es un modificador, en esta página una lista completa de los modificadores permitidos en la sintaxis de PCRE.

La diferencia con ereg ()

Como se puede ver la diferencia con ereg () no son mucho, vamos a resumir brevemente:

  • uso de los delimitadores / ... / (en realidad se puede utilizar otros caracteres como delimitador, pero la barra es la opción habitual);
  • entre mayúsculas y minúsculas versión (eregi ()) se sustituye por el uso de la "i" después de que el delimitador de cierre;
  • la presencia de la naturaleza / en el patrón será necesario (si se utilizan para recortar como delimitador) escape (\ /) con el fin de que no debe confundirse con los delimitadores;
  • Hay algunas pequeñas diferencias en el manejo de caracteres ASCII (las funciones POSIX, a diferencia de la PCRE aceptar los caracteres ASCII numéricos:. Por ejemplo, se corresponde con el número 10 y 13 de regreso nueva línea de transporte; viceversa con las funciones PCRE 10 representa exclusivamente el número diez).
  • el ereg function () sólo acepta tres parámetros (patrón, texto a ser revisado y, opcionalmente, un arreglo que contiene los resultados) y preg_match () admite cinco (las dos primeras, ya hemos visto, se requiere, los otros tres son opcionales );

Sobre la base de lo anterior (y las diferencias que se han mencionado) se puede considerar de nuevo (parcialmente) con una validez las explicaciones teóricas acerca de la sintaxis de las expresiones regulares se pueden encontrar en esta página el artículo "Expresiones regulares en PHP", dedicada a la antigua funciones POSIX .

En la misma categoría ...
E-Learning
Linux (Curso) Linux (Curso)
Guía completa de código abierto del sistema. A partir de 49 €.
MySQL (Curso) MySQL (Curso)
Gestión de base de datos de código abierto. A partir de 39 €.
PHP (Curso) PHP (Curso)
Ciclo completo para la creación de sitios Web dinámicos. A partir de 49 €.
Enlaces patrocinados