Header Ads Widget

Ticker

6/recent/ticker-posts

Cree su propio probador de expresiones regulares PCRE con PHP

 Cree su propio probador de expresiones regulares PCRE con PHP


Como prometimos, en este episodio crearemos nuestro propio probador de expresiones regulares para que podamos probar varios patrones de expresiones regulares. Esta es una excelente manera de aprender expresiones regularesComo cubrimos en la publicación anterior sobre expresiones regulares, también hay muchas herramientas excelentes para hacer esto en línea. Entonces, ¿cuál es la razón para construir el nuestro? Es realmente simple, es divertido de hacer y también un gran ejercicio de aprendizaje. Lo que nos proponemos hacer es crear una aplicación simple de una página que acepte una cadena de datos, o asunto, así como un patrón. Luego tendremos un botón de envío que ejecutará el patrón contra el sujeto usando la función preg_match_all incorporada en PHP. Vamos a ver.


Crea el formulario

Primero, necesitamos el formulario para aceptar los datos que queremos probar.

Entonces, en este fragmento hay algunas cosas a tener en cuenta. Simplemente vamos a publicar el formulario en el preg_match_all.phpque se encuentra el nombre del archivo de esta aplicación. Incluimos un poco de código para verificar la presencia de datos que pueden haber sido enviados a través del formulario. Si es así, volvemos a llenar el formulario con esos valores. De esta manera, no tenemos que volver a pegar continuamente los datos que estamos probando para el sujeto. Esto también ayuda para el patrón, ya que podemos realizar ediciones incrementales en el patrón fácilmente y continuar probando con el sujeto en cuestión. Finalmente, incluimos un botón de envío simple, que hemos abordado con el texto, "Preg Match All". Se parece a esto.
formulario de asunto regex

Frio. Podemos ver que hay un área de texto para ingresar algunos datos con los que queremos verificar, una entrada de texto para el patrón de expresión regular y un botón de envío simple.


El script de procesamiento de formularios

Aquí está el fragmento de PHP que manejará el procesamiento del formulario cuando se envíe. Esto realmente va * por encima * del html del formulario para que podamos capturar los datos del formulario para repoblarlos si es necesario.

Excelente. Primero, usamos el operador ternario para verificar los datos enviados a través del formulario. Si no se han enviado datos, simplemente ingresamos una cadena vacía en las variables $ sujeto y $ patrón.

A continuación, usamos una ifdeclaración simple para verificar la longitud del $patternusando la función strlen . Si $patterntiene una longitud mayor que cero, procedemos a ejecutar la función preg_match_all utilizando los datos que se han enviado desde el formulario. preg_match_alles una función fantástica que puede utilizar para comprobar todas las coincidencias dentro de un tema. El primer parámetro de esta función es el patrón real que se utilizará para la expresión regular. Tenga en cuenta que en el código anterior, agregamos los delimitadores con anticipación, de esa manera cuando ingresamos el patrón en el formulario no es necesario incluirlos. Este es solo un mecanismo de conveniencia simple. El segundo parámetro es el tema contra el que probaremos la expresión regular. Estos son los datos que provienen del área de texto en nuestro formulario. El tercer parámetro se denomina variable para contener las coincidencias que resultan de la expresión regular que se ejecuta. Con preg_match_all , las coincidencias en realidad se almacenan en una matriz multidimensional. Es por eso que cuando hacemos un bucle sobre esta matriz, hacemos un bucle $matches[0]y no$matchesFinalmente, simplemente repetimos cada coincidencia seguida de un salto de línea. Todo el guión se ve así.

Esto es muy simple y básico, pero debería ser una buena herramienta de prueba rápida y sucia para algunas de nuestras expresiones regulares. Examinemos las miradas atrás positivas y negativas. Recuerde de nuestra publicación anterior que esto es cuando la expresión regular mira hacia atrás o antes del patrón en cuestión. Esto es bueno para hacer coincidir algo que solo esté precedido por un carácter o una cadena de caracteres en particular. Aquí hay una captura de pantalla de nuestra herramienta que completa una mirada positiva detrás de la coincidencia.

expresión regular mirada positiva detrás

Esto es justo después de hacer clic en el botón Enviar. Podemos ver que la coincidencia de 'nosotros' obtiene la salida en la parte superior, y nuestro formulario se completa con los datos que habíamos utilizado. De esta manera podemos editar fácilmente los datos en el formulario e intentar otra prueba. Este usado ¿Sabes a qué es igual 1 + 1? {pronto lo sabremos} [jaja]. para el sujeto y nuestro patrón de expresiones regulares fue (?<={)[a-z]{2}Este patrón dice, haga coincidir dos caracteres cualesquiera dentro del rango de minúsculas de la aa la z, * solo * si está precedido por una llave izquierda. ¡Agradable!

Probemos ahora la retrospectiva negativa. Podemos modificar el patrón al (?<![)[a-z]{4}que dice que haga coincidir cuatro caracteres secuenciales siempre que no haya un corchete izquierdo antes de ellos. Podemos ver aquí que esto funciona, ya que la cadena 'jaja' no coincidió, pero sí varios otros cuatro caracteres consecutivos.
expresión regular mirada negativa detrás

Conclusión

Si alguna vez se encuentra sin conexión a Internet y no puede acceder a ninguno de los excelentes recursos que cubrimos en el último episodio para probar sus expresiones regulares, ahora tiene una forma realmente simple de probarlas localmente si es necesario. Es rápido, sucio y útil, perfecto si me preguntas.

Publicar un comentario

0 Comentarios