Función preg_match() en PHP
El uso principal de las expresiones regulares es poder cotejar una cadena, para determinar si existen coincidencias o no con una determinada expresión.
Para ello contamos con la función preg_match().
Esta función realiza una comparación con una expresión regular.
<?php $sujeto = "abcdef"; $patrón = '/^def/'; preg_match($patrón, $sujeto, $coincidencias, PREG_OFFSET_CAPTURE, 3); print_r($coincidencias); ?>Esta función recibe cinco argumentos
preg_match($pattern, $subject[, $matches[, $flags = 0 [$offset = 0 ]]])Veamos que hace cada uno de ellos:
Argumentos
|
Definición
|
pattern
|
La expresión regular con el patrón de búsqueda.
|
subject
|
La cadena de entrada que deseamos verificar.
|
matches
|
Es un array con información de las partes de la cadena que coinciden con la expresión regular.
Si se proporcionan coincidencias (matches), entonces éste se llena con los resultados de la búsqueda.
|
flags
|
Si se pasa el parametro ‘PREG_OFFSET_CAPTURE’ en el array de coincidencias también vendrá el índice de comienzo de cada coincidencia.
|
offset
|
Normalmente, la búsqueda
comienza por el principio de la cadena objetivo.
El parámetro opcional offset se puede usar para especificar la posición de comienzo dentro de la $subject de la comparación. |
- Devuelve 1 si $pattern coincide con $subject
- Devuelve 0 si no, o FALSE si ocurrió un error.
Veamos algunos ejemplos del uso de esta función.
Primero una nota necesaria:
- Hay varios caracteres que son delimitadores del patrón, os los enumero y ya los veréis en los códigos de ejemplo:
- i: Indica que el patrón de búsqueda no diferencia entre mayúsculas y minúsculas.
- b: Delimita el final de la condición estricta de un patrón, es decir, sin comparamos ‘/compara/b’ con ‘/comparador/’ la búsqueda dara FALSE.
<?php //Demilitador 'i' para no diferenciar mayus y minus if (preg_match("/PRUEBA/i", "esto es una prueba")) { echo "HAY COINCIDENCIA"; }else { echo "NO HAY COINCIDENCIA"; } ?>Ahora probamos el delimitador ‘b’:
<?php //Demilitador 'b' if (preg_match("/compara\b/", "vamos a comparar código")) { echo "HAY COINCIDENCIA"; } else { echo "NO HAY COINCIDENCIA"; } ?>Un código que nos permita buscar una cadena
<?php /* El \b en el patrón indica un límite de palabra, por lo que sólo la palabra * definida "web" se compara, y no una palabra parcial como "webbing" o "cobweb" */ if (preg_match("/\bweb\b/i", "PHP es el lenguaje de secuencias de comandos web preferido.")) { echo "Se encontró una coincidencia."; } else { echo "No se encontró ninguna coincidencia."; } if (preg_match("/\bweb\b/i", "PHP es el lenguaje de secuencias de comandos website preferido.")) { echo "Se encontró una coincidencia."; } else { echo "No se encontró ninguna coincidencia."; } ?>
Si te hemos ayudado : )
Te agradeceríamos que apoyaras este proyecto
No se te olvide Comentar y Compartir
en:
en:
0 comentarios:
Publicar un comentario