• Publicidad

Significado de expresión regular

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Significado de expresión regular

Notapor teco000 » 2010-04-12 10:19 @471

Saludos, me pueden ayudar, diciéndome qué significa la siguiente expresión regular que tengo en mi firewall.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
(\W|\b)(4\d|5[1-5])\d{2}([ \-]?)\d{4}(\3\d{4}){2}(\W|\b)
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
teco000
Perlero nuevo
Perlero nuevo
 
Mensajes: 67
Registrado: 2008-05-29 15:22 @682
Ubicación: Guatemala

Publicidad

Re: Significado de expresión regular

Notapor explorer » 2010-04-12 10:46 @490

* (\W|\b) coincide con límite de palabra o algo que no sea alfanumérico, que capturaremos en $1
* (4\d|5[1-5]) o bien tenemos un '4' seguido de un dígito, o un '5' seguido de un dígito '1', '2', '3', '4' o '5', que capturaremos en $2
* \d{2} seguido por dos dígitos más
* ([ \-]?) posiblemente seguido de un separador, que puede ser el espacio, o '\' o '-', que capturaremos en $3
* \d{4} seguido de cuatro dígitos más
* (\3\d{4}){2} seguido de un patrón repetido dos veces, consistente en el valor $3 (el separador) seguido de cuatro dígitos más, que capturaremos (uno de las repeticiones) en $4
* (\W|\b) coincide con límite de palabra o algo que no sea alfanumérico, que capturaremos en $5

En resumen... está buscando números de tarjetas de crédito.

Actualización: hay un módulo en CPAN para esto: Regexp::Common::CC. Sirve para las tarjetas Mastercard, Visa, Amex, Diners Club, Discover, enRoute y JCB.

Actualización 2: creo que quedaría mejor así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
(?:\W|\b)((?:4\d|5[1-5])\d{2}(\D?)\d{4}(?:\2\d{4}){2})(?:\W|\b)
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

quedando el número de la tarjeta de crédito en $1.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados