• Publicidad

Expresión regular lamentablente básica

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

Expresión regular lamentablente básica

Notapor BigBear » 2010-09-12 18:10 @798

Hola a todos.

Tengo el siguiente texto en la variable $cosa:

hola.chau

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if ($cosa=~/(.*).(.*)/) { # Mal !!!!
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Mi simple duda es cómo separar hola y chau mediante el punto.
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Publicidad

Re: Expresión regular lamentablente básica

Notapor explorer » 2010-09-13 04:48 @242

Si quieres anclar un punto, debes escaparlo: \.

También debes tener cuidado con los operadores avariciosos, com .*, pues acapararán todo lo que encuentren a su paso. Y si pones dos seguidos, lucharán entre ellos.

Si el problema consiste en separar dos palabras que están unidas por un punto, lo podemos indicar de forma más segura, así:

$cosa=~/(\w+)\.(\w+)/

El indicador \w coincidirá con cualquier carácter alfanumérico más el '_', pero nada más. Con el '+' indicamos que, al menos, esa palabra tiene una letra.

Y el punto, escapado con \.

Otra forma de verlo... usando split():

my ($palabra1, $palabra2) = split /\./, $cosa;

Más información, en perldoc perlre.
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 39 invitados