"¿Para qué sirven los regex?" os preguntáis. Os lo explico con ejemplos prácticos! Hilo va ⬇
Los regex sirve para buscar cosas sin saber qué estas buscando exactamente. Es como cuando de pequeño jugabas al Lego y necesitabas una cosa que encajase en esa otra cosa, para poder juntar las 2 cosas; así que tirabas el cubo entero de lego y te ponías a buscar.
"Pero cómo voy a buscar algo sin saber qué estoy buscando?"
Es fácil. Tu ponte que tu jefe te dice "quiero que valides este campo de URL para que la gente no pueda meter otra cosa que no sea una URL".
Ahi tienes 2 opciones. Dejarle al usuario meter lo que quiera y luego (...)
(...) hacer un "curl <lo que haya en el campo>" para ver si es una URL o no. O también puedes describir en K̵l̵i̵n̵g̵o̵n̵ regex unas reglas genéricas que intenten cubrir todos los posibles escenarios que se te ocurran (mas o menos el 7% del total de posibilidades). Ejemplo:
Sigues sin estar convencido de la utilidad de regex? Te pongo otro ejemplo.
Tu ponte que tu jefe te dice "quiero que valides este campo de email para que la gente no pueda meter otra cosa que no sea un email valido".
Volvemos a lo de antes. Puedes dejarle al usuario (...)
(...) meter lo que le dé la gana y luego intentar enviar un correo a <campo de email>. O también puedes validar el campo con un conjuro mágico en É̵l̵f̵i̵c̵o̵ ̵a̵n̵t̵i̵g̵u̵o̵ regex:
(Es un conjuro muy chungo, necesito tuit y medio para ponerlo todo)
"Sirve para algo más aparte de para validar?"
Claro que sí! Tu ponte que te pasan un CSV medio-roto de esos que a saber de donde cojones lo han sacado, y te piden que lo arregles. Ahí, como en los otros 2 casos, tienes 2 opciones.
Puedes copiar el CSV en VSCode y usando (...)
(...) Ctrl+D / multi-cursor / multi-selección arreglarlo en 3 o 4 minutos.
O también puedes usar Ctrl+Shift+F para sustituir <cosas>, activando regex.
Puede que tardes unas 4 o 5 horas, pero una vez que tengas el regex bueno, te va a servir para cualquier otro CSV que t.... oh... espera... nah, olvídalo.
"Vale, estoy tentado de comprartelo. Algo más que deba saber?"
Ahora que lo dices, una cosilla sin demasiada importancia. Hay una cosa que se llama "ataque ReDoS", pero nah... eso es imposible que te pase, tú sin miedo!
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Hoy os voy a explicar por qué vuestra API REST hecha en Go, optimizada a mas no poder, escalada y balanceada en AWS, con SLA de 389% tarda 475ms en responder, mientras que el cutre-api.php de @MarcosBL escupe JSONs en 7ms. Dentro hilo! ⬇
Todo empieza cuando vuestra página web le hace una petición a la API ™. Unos cuantos pobres bytes empaquetados que tienen por delante mas camino que Frodo.
La primera parada es el Internet Gateway de AWS. Majestuoso como Los Argonath, observando quién entra y quién sale.