php

Uso de la función preg_match () en PHP

Uso de la función preg_match () en PHP

La expresión regular es un patrón particular que se puede usar para hacer coincidir, buscar y reemplazar cualquier cadena en particular en los datos de texto. Es una característica poderosa de cualquier lenguaje de programación. Se utiliza principalmente para realizar diferentes tipos de validaciones de formularios, como validar el correo electrónico, verificar el formato del teléfono, validar los campos de nombre de usuario y contraseña del formulario de inicio de sesión, etc. Cualquier contenido particular del texto se puede buscar y reemplazar usando un patrón de expresión regular. También se llama regex o RegExp. Se utilizan diferentes tipos de símbolos para definir el patrón de expresiones regulares.

Existen muchas funciones integradas en PHP para la expresión regular. La función preg_match () es una de ellas. Esta función se utiliza para hacer coincidir un patrón particular en datos de cadena. En este tutorial se explica cómo se puede usar la función preg_match () en PHP para realizar varias tareas.

Sintaxis:

Int o falso preg_match (cadena $ patrón, cadena $ asunto [, matriz & $ coincidencias = nulo [, int $ banderas = 0 [, int $ compensación = 0]]])

Esta función puede tomar cinco argumentos. El primer argumento, $ patrón, es obligatorio, que define el patrón de coincidencia. El segundo argumento, $ asunto, es obligatorio y contiene los datos de la cadena en la que se aplicará el patrón. El tercer argumento, $ partidos, es opcional y devuelve una matriz basada en la coincidencia. El cuarto argumento, $ banderas, es opcional, que contiene diferentes tipos de valores de bandera basados ​​en la coincidencia. El quinto argumento, $ compensación, es opcional y se puede utilizar para definir la posición de inicio de la búsqueda.

Ejemplo 1: hacer coincidir el patrón de una manera sensible a mayúsculas y minúsculas

El siguiente ejemplo muestra el uso de la función preg_match () para hacer coincidir la cadena de una manera sensible a mayúsculas y minúsculas. Crea un archivo PHP con el siguiente script.

Aquí, se utilizan tres patrones para aplicar en tres funciones preg_match (). El primer patrón, '/Como/', se utiliza para hacer coincidir la cadena de forma sensible a mayúsculas y minúsculas. El segundo patrón, '/como/', se utiliza para hacer coincidir la cadena de forma sensible a mayúsculas y minúsculas. El tercer patrón, 'Como yo', se utiliza para hacer coincidir la cadena de forma que no distingue entre mayúsculas y minúsculas. patrón_búsqueda () la función está definida en el script para usar la función preg_match () para hacer coincidir, e imprime el mensaje según el valor devuelto por esta función.

// Definir el texto
$ text = "Me gusta PHP. También me gusta JavaScript.";
// Definir tres tipos de patrón
$ patrón1 = '/ Me gusta /';
$ patrón2 = '/ me gusta /';
$ patrón3 = '/ Me gusta / i';
// Definir función para buscar el patrón en el texto
función search_pattern ($ patrón, $ cadena)

if (preg_match ($ patrón, $ cadena))
echo "Resultado de la búsqueda: Se encuentra una coincidencia para el patrón - $ patrón
";
demás
echo "Resultado de la búsqueda: No se encuentra la coincidencia para el patrón - $ patrón
";

// Imprime el texto original
echo "El texto original es: $ texto
";
// Llamar a la función tres veces para tres patrones
search_pattern ($ patrón1, $ texto);
patrón_búsqueda ($ patrón2, $ texto);
search_pattern ($ patrón3, $ texto);
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script desde el servidor. La primera línea muestra el texto donde se buscaron los patrones. La segunda línea muestra la salida del primer patrón. La tercera línea muestra la salida del segundo patrón. La cuarta línea muestra la salida del tercer patrón.

Ejemplo 2: validar la URL

El siguiente ejemplo muestra la forma de validar la dirección URL usando la función preg_match (). Crea un archivo PHP con el siguiente script.

Se asigna un valor de URL en la variable $ url para probar. '@ ^ (?: https: //)?([^ /] +) @ i 'la cadena se usa como patrón en la función preg_match () para verificar si la dirección URL es válida o no. Si es válido, se imprimirán el nombre de host y el nombre de dominio; de lo contrario, se imprimirá el mensaje de error.

// Definir la URL
$ url = "https: // www.linuxhint.com ";
// Definir el patrón para validar la URL
$ patrón = '@ ^ (?: https: //)?([^ /] +) @ i ';
// Comprueba que la URL sea válida o no
if (preg_match ($ patrón, $ url, $ coincidencias1))

// Imprime el mensaje de éxito
echo "La URL es válida.
";
// Imprime la matriz que contiene los valores coincidentes
echo "Los valores de la matriz son:";
print_r ($ coincidencias1);
// Recuperar e imprimir el valor del host
$ anfitrión = $ coincidencias1 [1];
eco "
El nombre de host es: $ host ";
// Busque el nombre de dominio del valor del host
preg_match ('/ [^.] + \.[^.] + $ / ', $ anfitrión, $ coincidencias2);
eco "
El nombre de dominio es: $ matches2 [0] ";

demás

// Imprime el mensaje de error
echo "URL no válida.";

?>

Producción:

La siguiente salida aparecerá después de ejecutar el script desde el servidor. La URL proporcionada en el script es válida. Entonces, la salida muestra los valores de $ coincidencias, el nombre de host de la URL y el nombre de dominio de la URL.

Ejemplo 3: patrón de búsqueda con valores de marca y compensación

El siguiente ejemplo muestra los usos de la bandera y los valores de compensación en la función preg_match (). Crea un archivo PHP con el siguiente script.

Se utilizan tres patrones en el script para tres tipos de coincidencia. En la primera función preg_match (), se usa '/ (bangla) (desh) /' como patrón y valor de bandera, se usa PREG_OFFSET_CAPTURE. Los valores de la $ partidos La variable se imprimirá según la salida de la primera función preg_match (). En la segunda función preg_match (), '/ (bangla) (glad) * (desh) / i', se usa como patrón y el valor de la bandera, se usa PREG_UNMATCHED_AS_NULL. Si alguna parte del patrón no coincide, se almacenará un valor NULL en la matriz. Los valores de la $ partidos La variable se imprimirá según la salida de la segunda función preg_match (). En la tercera función preg_match (), '/ glad /' se usa como patrón, se usa el valor de la bandera, PREG_OFFSET_CAPTURE y 3 se usa como valor de compensación. Los valores de la $ partidos La variable se imprimirá según la salida de la tercera función preg_match ().

// Definir el valor del texto
$ text = "Bangladesh";
// Definir tres tipos de patrones
$ patrón1 = '/ (bangla) (desh) / i';
$ patrón2 = '/ (bangla) (contento) * (desh) / i';
$ patrón3 = '/ contento /';
// Usando la bandera PREG_OFFSET_CAPTURE
preg_match ($ patrón1, $ texto, $ coincidencias, PREG_OFFSET_CAPTURE);
eco "
";
print_r ($ coincidencias);
eco "

";
// Usando la bandera PREG_UNMATCHED_AS_NULL
preg_match ($ patrón2, $ texto, $ coincidencias, PREG_UNMATCHED_AS_NULL);
eco "
";
print_r ($ coincidencias);
eco "

";
// Usando la bandera PREG_OFFSET_CAPTURE y el valor de compensación
preg_match ($ patrón3, $ texto, $ coincidencias, PREG_OFFSET_CAPTURE, 3);
eco "
";
print_r ($ coincidencias);
eco "
";
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script desde el servidor.

Conclusión

Los usos de la función preg_match () se han explicado en este tutorial utilizando varios ejemplos. Los usos de diferentes argumentos de esta función también se han mostrado aquí. Los lectores podrán utilizar esta función correctamente en su script después de leer este tutorial.

Controle y administre el movimiento del mouse entre múltiples monitores en Windows 10
Administrador de mouse de doble pantalla le permite controlar y configurar el movimiento del mouse entre varios monitores, al ralentizar sus movimient...
WinMouse le permite personalizar y mejorar el movimiento del puntero del mouse en una PC con Windows
Si desea mejorar las funciones predeterminadas del puntero del mouse, use el software gratuito WinMouse. Agrega más funciones para ayudarlo a aprovech...
El botón de clic izquierdo del mouse no funciona en Windows 10
Si está utilizando un mouse dedicado con su computadora portátil o computadora de escritorio, pero el el botón izquierdo del mouse no funciona en Wind...