Vamos a ver la función de PHP preg_match(),su funcionalidad nos permite buscar o comparar cadenas mediante expresiones regulares.
Otras funciones con que nos pueden parecer interesantes son:
La definicón oficial de PHP preg_match() es:
Realiza una comparación con una expresión regular
Veamos la sintaxis de esta función extraída de su web oficial:
entero preg_match (exp_regular , cadena [, coincidencias[, flags [, comienzo ]]])
Esta es la sintaxis de la función de PHP, ahora os detallo cada uno de los parámetros:
Hay varios caracteres que son delimitadores del patrón::
Primer ejemplo con el delimitador ‘i’:
<?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"; } ?>
Explico el código superior:
Segundo ejemplo con el delimitador ‘b’:
<?php //Demilitador 'b' if (preg_match("/compara\b/", "vamos a comparar código")) { echo "HAY COINCIDENCIA"; } else { echo "NO HAY COINCIDENCIA"; } ?>
Explico el código superior:
Ya hemos visto ejemplos con delimitadores de PHP preg_match(), probad a cambiar los ejemplos para ver el efecto contrario.
Tercer ejemplo usando expresión regular para que se busque al menos 2 números seguidos en la cadena:
//buscando al menos 2 numeros seguidos en la cadena if (preg_match('/[0-9]{2}/',"miemail22@email.com 45")) { echo "HAY COINCIDENCIA"; } else { echo "NO HAY COINCIDENCIA"; }
Explico el código:
Cuarto ejemplo para guardar las coincidencias en un array y mostrar su valor por pantalla:
//guardamos las coincidencias en un array if (preg_match('/nombre/',"nombres",$coincidencias)) { echo "HAY COINCIDENCIA<br>"; //imprimo el array en pantalla var_export ($coincidencias); //seria lo mismo que echo $coincidencias[0]; } else { echo "NO HAY COINCIDENCIA"; }
Explico el código:
A continuación usamos el mismo ejemplo que el anterior pero pasando el parámetro $flags para que nos devuelva el índice del array de la ocurrencia.
//guardamos las coincidencias en un array y pasamos el parametro flags if (preg_match('/nombre/',"nombres",$coincidencias,PREG_OFFSET_CAPTURE)) { echo "HAY COINCIDENCIA<br>"; print_r ($coincidencias); } else { echo "NO HAY COINCIDENCIA"; }
Último ejemplo pasando el parámetro $comienzo para definir el punto de partida de la comparación.
//guardamos las coincidencias en un array , pasamos el parametro flags, y decimos que empiece en el caracter 0 la comparacion if (preg_match('/nombre/',"nombres",$coincidencias,PREG_OFFSET_CAPTURE, 0)) { echo "HAY COINCIDENCIA<br>"; print_r ($coincidencias); } else { echo "NO HAY COINCIDENCIA"; }