Las expresiones regulares en php son una secuencia de caracteres que forman un patrón de búsqueda, estas son utilizadas por cualquier motor de búsqueda. Esto nos permite comparar entre cadenas de caracteres y poder encontrar coincidencia de combinaciones con ciertos caracteres.
Intentaremos hacer nosotros una búsqueda de expresiones regulares en una cadena de texto con la funcion preg_match(); de php. No me meteré mucho a fondo en esto ya que es muy complejo (tiene mucho de donde agarrar), pero si que daré una introducción.
preg_match(); acepta dos parámetros:
- En el primero parámetro (entre comillas y diagonales "/ /”) escribiremos las expresiones regulares que queramos encontrar, para ver si existe o no coincidencia.
- En el segundo parámetro escribiremos la cadena de caracteres en la que queremos encontrar las expresiones regulares.
preg_match(); nos devuelve un cierto o falso, esto nos va muy bien para un if, por lo que si escribimos:
<?php
if(preg_match("/texto/", "Hola, Tutoriales En Linea")){
echo "Coincide";
}else{
echo "No coincide";
}
?>
Esto nos deberá imprimir Coincide (de que es cierto), ya que la secuencia de caracteres si que se encuentra en la cadena de texto escrita.
Omitir entre mayúsculas y minúsculas
Como puede que lo que estemos buscando coincida pero que no sea exactamente igual, nos devolverá un falso, para ello escribimos una "i” (i latina) entre la ultima diagonal y las ultimas comillas.
<?php
if(preg_match("/texto/i", "Hola, Tutoriales En Linea")){
echo "Coincide";
}else{
echo "No coincide";
}
?>
Nuevamente nos debera imprimir que Coincide.
Búsqueda como palabra y no como parte de una palabra
Para buscar como palabra, tenemos que escribir "b” (barra invertida seguido de una b) antes y después de la palabra a buscar
<?php
if(preg_match("/btextob/i", "Hola, Tutoriales En Linea")){
echo "Coincide";
}else{
echo "No coincide";
}
?>
Y nuevamente, Coincide
Podría pensarse en "Pues podría escribir un espacio antes y después de la palabra a buscar, para decir que es una palabra”, pero puede que la palabra se encuentre al principio o final de la cadena (como es en este caso) y nos dirá que No coincide ya que no existe un espacio después de la palabra.
Busqueda de palabras con un rango de números
Lógicamente si queremos buscar números en una palabra se lo añadimos al primer parámetro y nada mas. Pero si no sabemos que número podría ser, solo escribimos el rango del que podría ser, y si no sabemos el rango aun así, el rango es del cero al nueve 0-9
Los rangos se escriben entre corchetes. Pongamos este ejemplo:
<?php
if(preg_match("/btexto[0-9]b/i", "Hola, Tutoriales En Linea")){
echo "Coincide";
}else{
echo "No coincide";
}
?>
Repeticiones
Pero esto nos limita a que la palabra tendrá que tener solo un número entre el 0 y el 9. pero si son 4 o 7 números. Podemos repetir este rango cuantas veces sea necesario. Para ello el número de repeticiones lo escribimos entre llaves.
<?php
if(preg_match("/btexto[0-9]{4}b/i", "Hola, Tutoriales En Linea")){
echo "Coincide";
}else{
echo "No coincide";
}
?>
Podemos tambien escribir un rango de repeticines, para no limitarnos a un número en especifico. Por ejemplo un rango entre un número y nueve números.
<?php
if(preg_match("/btexto[0-9]{1,9}b/i", "Hola, yo soy - Tutoriales En Linea")){
echo "Coincide";
}else{
echo "No coincide";
}
">php.net//manual/es/function.preg-match.php
Comentarios