EXPRESIONES REGULARES, UNA PELÍCULA DE TERROR. PARTE 3

<script src=”my own” title=”expresiones regulares una pel&iacute;cula de terror\. parte 3″>

Asusta, ¿no?

Asusta, ¿no?

No se si les asuste todavía… A mi me sigue causando pánico… 😥

Aunque, si le cojo el tranquillo, se que puedo superar ese miedo, así, sin tanta cháchara pues…

Me puse a inventar y a curucutear #porai e hice tres expresiones regulares para compartir con vosotros. A lo mejor se encuentren optimizadas #porai pero estas las hice yo (cabe destacar que estos patrones sólo aplican para Venezuela, después no digan que no les dije… 😛

Patrón para validar cédula / RIF:

/[VEPGJ]-?\d{6,9}-?\d?/gi

Básicamente se traduce así: selecciona al menos uno de todos los caracteres entre [], seguido de un guión (-) opcional, luego un grupo de 6 a 9 digitos numéricos, seguido de otro guión opcional y finalmente un digito opcional. el flag “g” para toda la cadena y el flag “i” para case insensitive.

Justificación: Los caracteres “V” y “E” son para cédulas (y algunos RIFs de personas naturales). “P” de pasaporte, “G” de personas gubernamentales y “J” para personas jurídicas. Algunas veces las cédulas y los RIFs pueden venir con guiones (J-12345678-6) o sin ellos (V12345678).

Puedes ver a Regexpal en acción, como no pueden escribirse flags, se marcan en la barra superior:

Regexpal en acción

Regexpal en acción

Patrón para validar números de cuenta bancaria:

/(\d{4})-(\d{4})-(\d{2})-(\d{10})/g

Traduciendo el galimatías: un grupo de 4 dígitos, guión y otro grupo de 4 dígitos, guión y otro grupo de 2 dígitos, guión y otro grupo de 10 dígitos.

Justificación: Aunque esta expresión regular pudo reescribirse de la forma (\d{4}){2}- etcétera, personalmente, y con fines académicos, considero necesario validar grupos de captura que permitan hacer una separación lógica de los datos, y en este caso particular, cada grupo de 4 dígitos representa algo diferente, significado que adquiere sentido cuando probamos esta expresión regular en Regexr usando grupos de sustitución:

Regexr en acción

Regexr en acción

Usando este código…

# estado y municipio: $1\n# código de agencia: $2\n# tipo de cuenta producto: $3\n# número de cuenta cliente: $4

… en el recuadro Substitution, podemos distinguir la siguiente separación:

Substitution de Regexr en acción

Substitution de Regexr en acción

Patrón para validar códigos de área y teléfonos locales y celulares:

/0(2(12|3[4589]|4[0-9]|[5-8][1-9]|9[1-5])|(4(12|14|16|24|26)))-?\d{7}/g

Traducción: ni de coña… 😛

Justificación: Una expresión regular tan compleja, no puede ser estudiada sino gráficamente para una mejor comprensión del patrón que valida, es por eso que la explicación puede verse [un poco] mejor en herramientas como Debuggex:

Debuggex en acción

Debuggex en acción

Y la expresión regular queda ¿simplificada? gráficamente de la siguiente forma:

gGráfico generado por Debuggex en acción

Gráfico generado por Debuggex

Variando el indicador POSITION a la posición START, podemos verificar el flujo de trabajo de la expresión regular, y certificar que valida tanto los códigos de operadores móviles como los códigos de área local que puedes consultar aquí.

Fin de la película de terror… ¿ven que no da miedo? 😉

</script>

Anuncios