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 que coincida, 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 formulario, 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 utilizando 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 regex.

Existen muchas funciones incorporadas en PHP para la expresión regular. preg_match () La función es uno de ellos. Esta función se utiliza para hacer coincidir un patrón particular en los 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 false preg_match (string $ patrón, cadena $ sujeto [, array & $ coincidentes = null [, int $ flags = 0 [, int $ offset = 0]]])

Esta función puede tomar cinco argumentos. El primer argumento, $ Patrón, es obligatorio, lo que define el patrón para la coincidencia. El segundo argumento, $ sujeto, es obligatorio y contiene los datos de cadena en los 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 usar para definir la posición inicial de la búsqueda.

Ejemplo 1: Haga coincidir el patrón de una manera sensible a la caja y de los casos

El siguiente ejemplo muestra el uso de la función preg_match () para hacer coincidir la cadena de una manera sensible al caso e insensible al caso. Cree 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 usa para hacer coincidir la cadena de forma sensible a la caja. El segundo patrón, '/como/', se usa para hacer coincidir la cadena de forma sensible a la caja. El tercer patrón, 'Como yo', se usa para hacer coincidir la cadena de forma insensible. Search_pattern () la función se define en el script para usar la función preg_match () para la coincidencia, e imprime el mensaje en función del valor devuelto de esta función.

// Defina el texto
$ text = "me gusta php. También me gusta JavaScript.";
// Definir tres tipos de patrón
$ patrón1 = '/me gusta/';
$ Pattern2 = '/Like/';
$ patrón3 = '/me gusta/i';
// Defina la función para buscar el patrón en el texto
función search_pattern ($ patrón, $ string)

if (preg_match ($ patrón, $ string))
Echo "Resultado de la búsqueda: La coincidencia se encuentra 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 ($ Pattern1, $ Text);
Search_pattern ($ Pattern2, $ Text);
Search_pattern ($ Pattern3, $ Text);
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script desde el servidor. La primera línea muestra el texto donde se registraron 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 de URL utilizando la función preg_match (). Cree un archivo PHP con el siguiente script.

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

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

// Imprimir el mensaje de éxito
echo "La URL es válida.
";
// Imprima la matriz que contiene los valores de coincidencia
echo "Los valores de la matriz son:";
print_r ($ Matches1);
// recuperar e imprimir el valor del host
$ host = $ Matches1 [1];
eco "
El nombre del host es: $ host ";
// busca el nombre de dominio del valor del host
preg_match ('/[^.]+\.[^.]+$/', $ host, $ Matches2);
eco "
El nombre de dominio es: $ Matches2 [0] ";

demás

// Imprima el mensaje de error
echo "URL invá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 indicador y compensación

El siguiente ejemplo muestra los usos de los valores de indicador y compensación en la función preg_match (). Cree 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 (), '/(bangla) (desh)/' se usa como patrón y el valor del indicador, se utiliza preg_offset_capture. Los valores del $ Partidos La variable se imprimirá en función de la salida de la primera función preg_match (). En la segunda función preg_match (), '/(bangla) (alegría)*(desh)/i', se usa como patrón y el valor del indicador, se utiliza preg_unmatched_as_null. Si alguna parte del patrón no coincide, entonces se almacenará un valor nulo en la matriz. Los valores del $ Partidos La variable se imprimirá en función de la salida de la segunda función preg_match (). En la tercera función preg_match (), '/Glad/' se usa como patrón, el valor del indicador, se usa preg_offset_capture y 3 se usa como valor de compensación. Los valores del $ Partidos La variable se imprimirá en función de la salida de la tercera función preg_match ().

// Defina el valor de texto
$ text = "Bangladesh";
// Defina tres tipos de patrones
$ patrón1 = '/(bangla) (desh)/i';
$ Pattern2 = '/(Bangla) (Glad)*(Desh)/I';
$ Pattern3 = '/Glad/';
// usando la bandera preg_offset_capture
preg_match ($ patrón1, $ text, $ coincidentes, preg_offset_capture);
eco "
";
print_r ($ coincidencias);
eco "

";
// usando preg_unmatched_as_null flag
preg_match ($ Pattern2, $ Text, $ Matches, preg_unmatched_as_null);
eco "
";
print_r ($ coincidencias);
eco "

";
// usando el indicador preg_offset_capture y el valor de compensación
preg_match ($ patrón3, $ text, $ 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 múltiples ejemplos. Los usos de diferentes argumentos de esta función también se han mostrado aquí. Los lectores podrán usar esta función correctamente en su script después de leer este tutorial.