Traductor



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. 
  • $matches[0] contendrá el texto que coincidió con el patrón completo
  • $matches[1] tendrá el texto que coincidió con el primer sub-patrón entre paréntesis capturado, y así sucesivamente.
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.

preg_match() 
  • Devuelve 1 si $pattern coincide con $subject 
  • Devuelve 0 si no, o FALSE si ocurrió un error. 
Esta función puede devolver el valor booleano FALSE, pero también puede devolver un valor no booleano que se evalúa como FALSE. 
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.
Primer código de ejemplo con el delimitador ‘i’, pruebe cambiar la cadena comparada:
<?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:
                          

0 comentarios:

Publicar un comentario