• Publicidad

Extraer datos de una oración con una 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.

Extraer datos de una oración con una expresión regular

Notapor BigBear » 2009-09-04 18:34 @815

Hola a todos.

Tengo el siguiente texto

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
:Chairface!chairface_darkhat@localhost PRIVMSG #locos :Hola a todos
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Y quisiera extraer solo
Chairface
Hola a todos

¿Alguien me podría explicar cómo realizo esa complicada expresión regular?
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Publicidad

Re: Extraer datos de una oración con una expresión regular

Notapor explorer » 2009-09-04 18:51 @827

Yo te doy una primera explicación.

El texto está en una línea:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
:Chairface!chairface_darkhat@localhost PRIVMSG #locos :Hola a todos
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Necesitamos fijarnos en cosas que nos sirvan de 'anclas' o 'puntos de referencia' a partir de los cuales podamos sacar la información que queramos.

En este caso, vemos que lo que queremos sacar está justo después del carácter ':'.

Pero no está claro hasta donde tenemos que recortar: en el primer caso, es hasta el símbolo '!'. Y en el segundo, hasta el final de línea.

Bueno, pues ya hemos deducido el patrón de búsqueda:

/:(.*?)!/ para el primero: buscamos todo lo que hay entre ':' y '!'.
/:(.*?)$/ para el segundo: buscamos todos los últimos caracteres a partir del ':'.

Ahora solo queda confeccionar la expresión regular.

Ahora bien... pueden surgir problemas porque el ejemplo dado no sea bueno...

Por ejemplo: ¿Qué pasa si en el texto final hay un carácter ':'?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
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 1 invitado

cron