• Publicidad

Expresiones regulares en Python

Todo lo relacionado con lenguajes de programación distintos de Perl: PHP, Java, C++, Ruby, Python, etc.

Expresiones regulares en Python

Notapor BigBear » 2010-01-19 17:12 @758

Hola. Espero que alguien sepa algo de Python porque estoy necesitando ayuda en esto
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
TTA123TTA124TTA125TTA126TTA
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Lo que yo quiero es realizar una expresión regular para extraer los números que necesito
que vendrían a ser 123,124,125,126 (aunque en el caso real no es solo dígitos)

¿Alguien me sabe cómo hacerlo?
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Publicidad

Re: Expresiones regulares en Python

Notapor explorer » 2010-01-19 17:23 @766

Bueno, yo Python no sé, así que te diré cómo se hace en Perl, y de ahí podrías deducir la respuesta en Python.

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
bash:> perl -le '$x = "TTA123TTA124TTA125TTA126TTA"; @numeros = $x =~ /TTA(.+?)(?=TTA|$)/g; print join ",", @numeros'
123,124,125,126
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

La expresión regular es:
* buscamos por TTA
* seguido por "algo", que capturamos como $1
* que está seguido por TTA o por el final de cadena
* y repetimos esta búsqueda hasta el final de cadena
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

Re: Expresiones regulares en Python

Notapor erv-Z » 2010-01-19 18:05 @795

Bueno, no manejo Python, porque no me gusta su sintaxis, pero solo tienes que sacar los números que están después de TTA. Puede ser así: TTA(\d+), y con una función join() le agregas coma...

¡Saludos!
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Expresiones regulares en Python

Notapor BigBear » 2010-01-19 18:13 @801

Gracias, explorer, pero buscando por Google leí varios manuales de regex en Python y me salió

Sintáxis: [ Descargar ] [ Ocultar ]
Using python Syntax Highlighting
import re

b= re.compile('TTA(.*?)TTA(.*)TTA(.*)TTA(.*)TTA' )
a  = b.search('TTA123TTA124TTA125TTA126TTA').groups()
print a
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Ahora voy descubriendo el power en Python a mi corta edad...
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Re: Expresiones regulares en Python

Notapor explorer » 2010-01-19 18:29 @812

Bueno, solo por completar, el programa Perl equivalente es este:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$b = qr/TTA(.*?)TTA(.*)TTA(.*)TTA(.*)TTA/;
@a = 'TTA123TTA124TTA125TTA126TTA' =~ $b;
print @a;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
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 Programación en general

¿Quién está conectado?

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