Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Expresiones regulares

5/16
Recursos

Aportes 55

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

La explicación más sencilla que he visto, me ha quedado todo claro.

#EXPRESIONES REGULARES
/*
/:  CONTENEDOR
^: INICIO
$: FINAL
-: RANGO
[]: PATRÓN 
{}: CONDICIÓN
*/

$password = '12345';
$password1 = '123456a';
$password2 = '123456';
//Iniciamos con un contenedo // luego iniciamos con  ^ y que solo permita un patrón del 0 al 9 [0-9] 
//la condicion en llaves y que tenga como minimo 6 elementos y máximo 9 caracteres {6,9}
echo preg_match('/^[0-9]{6,9}$/', $password);
//Resultado 0
echo "<br>";
var_dump(preg_match('/^[0-9]{6,9}$/', $password1));
//Resultado int(0)
echo "<br>";
var_dump((bool)preg_match('/^[0-9]{6,9}$/', $password2));
//Resultado bool(true)

Recuerdo que ami me costó mucho entender expresiones regulares, pero realmente no es nada del otro mundo, solo hay que practicarlas y repasarlas, igual existe muchas página online que te ayudan a evaluar las expresiones en tiempo real para cuando necesites programar alguna desde 0.

Como dato extra, los signos de "^ " y “$” no siempre van, creo que eso es algo equivocado en esta clase, esos ambos signos son opcionales, básicamente el signo “^” te dice que la cadena debe iniciar con tal patrón y después de ese patrón puede tener cualquier cosa extra, el signo “$” te dice que la cadena puede tener cualquier cosa extra, pero debe finalizar con el patrón escrito, cuando pones “^” y “$” estás diciendo que la cadena debe contener exactamente el patrón pasado, sirve cuando quieres evaluar cadenas exactas. Lo que si es cierto es que las expresiones regulares deben ir siempre entre diagonales “/”

lo simplifico un monton, un groso el profe!

Hice este código que con ayuda de un bloque condicional dice si se acepta o no

`<?php

$password='123456';
/**
 * Esta expresion regular
 * exige caracteres
 * desde el 0 al 9
 * y que tenga una
 * longuitud de 6
 * a 9 caracteres
 */
$expreg='/^[0-9]{6,9}$/';

if (preg_match($expreg,$password)) {
    echo 'La contraseña tiene un formato correcto';
} else{
    echo 'La contraseña no tiene un formato correcto';
}`

Expresiones regulares


  • / → Es un contenedor. Este inicia y finaliza.
  • ^ → Dentro del contenedor tenemos esta expresión que nos indica un inicio.
  • $ → Cuando finalicemos utilizamos esta exprseión.
  • ‘-’ (rayita 😃 ) → Nos sirve para especificar rangos.
  • [ ] → Este es para especificar un patrón.
  • {} → Este nos sirve para establecer condición.
<?php

$psswrd = '123456';
//echo preg_match('/^[0-9]{6,9}$/', $psswrd);
var_dump((bool) preg_match('/^[0-9]{6,9}$/', $psswrd));

🤔 Las expresiones regulares nos permiten describir patrones de texto.

Al fin pude comprender para que son ese tipo de caracteres 😃

Las funciones CAST nos sirven para convertir de un tipo d edato a otro tipo. Ya ves que PHP al ser un poco más felxible que otros lenguajes para el, es lo mismo decir que una variable o resultado con el tipo de dato int con valor 1 es lo mismo que decir que es boolean o boolean. En el vídeo vemos como el profesor usa una conversión para pasar de int a bool el resultado que arroja la expresión regular.

Existen varias formas de conversión las cuales podrás encontrar en el enlace que dejo de la documentación oficial de PHP.

Esto me da claridad de lo que se puede hacer.

como referencia siempre la pagina oficial de php
https://www.php.net/manual/en/function.preg-match.php

El tema esta genial, esta es una listaa de las expresiones regulares que se pueden usar: https://www.mclibre.org/consultar/php/lecciones/php-expresiones-regulares.html
con esto espero puedan complementar un poco este tema a parte del curso antes mencionado

Las expresiones regulares son muy usadas para validaciones(además del tipico if, else, switch).
Es muy importante saber sus fundamentos, igual en internet se pueden sacar expresiones mas comunes, pero sin duda pegar y copiar de internet sin saber como funciona es una mala constumbre de programadores.

Gran forma de explicar este tema que anteriormente lo había visto y me parecía difícil. Con esta explicación me quedo muy claro. Gracias.

Si desean practicar con expresiones regulares, esta página es la indicada:
https://regex101.com/
En el curso de Expresiones Regulares aqui en Platzi la utilizamos.

Excelente explicación para iniciarse en el mundo de las expresiones regulares

El acento especial o flecha arriba (así lo llamo yo) es posible sacarlo con ALT + 94

Aquí otros carácteres

Con el aporte del profe Retax Master, les dejo un ejercicio práctico.

<?php
    $password='a123456a';
    //quiero que cumpla que inicie con una letra minuscula entre la a y la z, despues contenga numeros y finalice
    //con un numero. además que tenga entre 6 y 10 caracteres de longitud
    var_dump((bool)preg_match('/^[a-z][0-9]{6,10}$/',$password));
    echo "<br>";
    #NO ES LO MISMO QUE
    //quiero que cumpla que inicie con una letra minuscula entre la a y la z, despues contenga numeros y no importa
    //si termina en numero o caracter. además que tenga entre 6 y 10 caracteres de longitud 
    var_dump((bool)preg_match('/[a-z][0-9]{6,10}/',$password));

Expresiones regulares

  • Es útil para validar el formato en la cual está escrita una cadena (email, url, teléfono, contraseña, etc.)

/: CONTENEDOR
^: INICIO
$: FINAL
-: RANGO
[]: PATRÓN
{}: CONDICIÓN

La explicación más clara sobre expresiones regulares que he visto hasta el día hoy. Gracias, profe Italo. Es un crack!

Wow pero que buena explicación

5. Expresiones regulares:

Les dejo mis apuntes sobre expresiones regulares en PHP:

  • /: CONTENEDOR
  • ^: INICIO
  • $: FINAL
  • -: RANGO
  • []: PATRÓN
  • {}: CONDICIÓN

Una expresión regular retorna verdadero o falso, les comparto el código de la clase, la mayoría de las cosas ya están hechas, necesitamos solo copiarlas.

Les comparto el código de la clase:

<?php

$password = '123456789';

/**
 * Este Regex dice: Quiero una contraseña solo
 * de números, del 0 al 9, y que tenga como longitud
 * mínimo 6 caracteres y máximo 9
 **/

var_dump ((bool)preg_match('/^[0-9]{6,9}$/', $password));

Hola!
estuve curoseando un poco intentando hacer otras validadaciones con letras y funcionaron perfectamente.

<?php

/*
				    EXPRESIONES REGULARES
/:  CONTENEDOR
^: INICIO
$: FINAL
-: RANGO
[]: PATRÓN 
{}: CONDICIÓN
*/
//------------- EJEMPLO 1 --------------------//

$password = 'Z0234567a';
$validarPatron1 = preg_match('/^[0-9]{6,9}$/',$password);           //números de 0 a 9
$validarPatron2 = preg_match('/^[a-z]{6,9}$/',$password);           //letras minúsculas de la a a la z
$validarPatron3 = preg_match('/^[0-9,a-z]{6,9}$/',$password);       //letras minúsculas y números de 0 a 9
$validarPatron4 = preg_match('/^[0-9,a-z,A-Z]{6,10}$/',$password);  //letras minúsculas y mayusculas y números
                                                            //longitud máxima de 10

echo $validarPatron4.'<br>';				// Resultado 1 o 0
var_dump(boolval($validarPatron4));		// Resultado booleano(true, false)

| Expresiones regulares
Devuelven verdadero o falso y sirven para confirmar si es que la entrega de datos está en el formato correcto.
Comienzan y terminan con /
comienzo ^
fin $
[] patron
{} condicion
Señalar tanto del tipo como el valor de una variable.
var_dump(variable)

Nunca lo habia entendido de forma tan clara como está desarrollado en esta clase, ahora si se puede decir que se tiene una base de lo que son las expresiones regulares

La función devuelve si se encontró una coincidencia en una cadena

preg_match();

Las expresiones regulares hacen uso de caracteres especiales, aquí les dejo una pagina que presenta la lista de como digitarlos:
https://fsymbols.com/es/teclado/windows/alt-codes/lista/

preg_match = sirve para comprobar expresiones

Me encanta este tema, es super poderoso y multi lenguaje

Explicado de una manera muy sencilla!

/ => Contenedor
^ => Inicio
$ => Final

  • => Rango
    [] => Patrón
    {} => Condición

Ejemplo: /^[0-9]{6,9}$/ acepta números del 0 al 9, de 6 a 9 dígitos

Muy claro esto, aqui les dejo un ejemplo adicional
$dir=“Avenida Chile”;
if(preg_match("/^avenida/i", $dir)){
echo "Dirección correcta "
}
//Nota: La i al final del la expresion del regex que es insensible a las mayusculas

Definitivamente tomaremos el curso de Expresiones Regulares esto sirve increíblemente en el tratamiento de datos…

Recuerden que hay un curso completo de expresiones regulares
https://platzi.com/clases/expresiones-regulares/

Puedes hacer pruebas en vivo y aprender más sobre expresiones regulares en esta página: https://regexr.com/. (Además, obviamente, del Curso de Expresiones Regulares).

Expresiones regulares tema nuevo para aprender

Las expresiones regulares son muy útiles al leer documentos

EXPRESIONES REGULARES

/:  CONTENEDOR

^: INICIO

$: FINAL

-: RANGO

[]: PATRÓN 

{}: CONDICIÓN

Las RegEx (Expresiones regulares) son muy poderosas, les recomiendo el curso en platzi!

preg_match -> buscar o comparar cadenas con expresiones regulares

<?php
# / es un contenedor la expresion regular /
# ^ indica el inicio de la expresion (No es obligatorio)
# $ indica el fin de la expresion (No es obligatorio)
# - sirve para especificar rangos
# [] sirve para definir un patron
# {} establecen condiciones

# ejemplo

// la contrasena debe contener solo numeros del 1 al 6
// y debe tener minimo 6 caracteres y maximo 10
$password = '45314661';
echo preg_match( '/^[1-6]{6,10}$/', $password );

Una muy buena página para practicar y testear nuestras expresiones regulares es regex101

Si desean profundizar en las expresiones regulares pueden seguir el curso de expresiones regulares en platzi. La verdad es que sirven muchísmo las expresiones en el día a día. En especial si están utilizando gnu/linux como SO.
Curso de expresiones regulares

EXcelente

Clase de super utilidad, la recomiendo

Una expresión regular es una secuencia de caracteres que conforma un patrón de búsqueda.

<h4>Caracter</h4>
  • / : Contenedor
  • ^ : Inicio
  • $ : Final
    • : Rango
  • [] : Patrón
  • {} : Condición

Me gusto mucho esta clase, ya había escuchado de las expresiones regulares en los cursos de Linux, pero no entendía lo que eran ni lo que hacían, en verdad con esta clase si se puede entender.

Las expresiones regulares son muy poderosas y ayudan a optimizar mucho el rendimiento de software.

Excellent

Excelente explicación profesor 😄

Para poder usar el caracter

^

Pueden usar

ALT + 94

Según el código ascci.

Buena clase, combinado con condiciones if todo esta más claro en pantalla jajaj

$password = 'platzi789';

$passwordValidation = preg_match('/^[0-9, a-z]{9,16}$/' , $password);

if ($passwordValidation)
{
    echo "Password Valida";

} 
else
{
    echo "Password No Valida";
}

Una expresión regular(regex, regexp) es una cadena de caracteres que es utilizada para describir o encontrar patrones dentro de otros strings, en base al uso de delimitadores y ciertas reglas de sintáxis.

#EXPRESIONES REGULARES
/*
/:  CONTENEDOR
^: INICIO
$: FINAL
-: RANGO
[]: PATRÓN 
{}: CONDICIÓN
*/```

despues de mucho tiempo porfin lo entendi… gracias 😃

Genial! Mejor explicado imposible, gracias!