• Publicidad

Expresión regular para cadenas con x caracteres

¿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 para cadenas con x caracteres

Notapor slopal » 2006-04-10 18:15 @802

Necesito controlar que una entrada SÓLO contenga los valores 'A', 'T', 'C' o 'G'.

Yo había pensado algo así:

if ($tupla =~ /[A,C,G,T]+/)

pero sólo me "funciona" si sólo contienen letras que no sean 'a', 't', 'c', 'g'. Por ejemplo:

si entro 3 --> error (OK)
si entro AT --> bien (OK)
si entro bx --> error(OK)
si entro abx --> bien (¡¡¡MAAAL!!!)

No sé cómo definir que no hayan "cosas" intercaladas :S
slopal
Perlero nuevo
Perlero nuevo
 
Mensajes: 78
Registrado: 2005-11-23 11:41 @528

Publicidad

Notapor kidd » 2006-04-10 19:05 @837

Tu expresión debería ser así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my @probar = ('3','AT','bx','abx');
  2.  
  3. for my $tupla(@probar){
  4.  
  5.     if($tupla =~ /^[ACGT]+$/){
  6.         print "OK\n";
  7.     }
  8.     else{
  9.        print "error\n";
  10.     }
  11.  
  12. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Expliquemos paso a paso:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
^           # Inicio de línea
[ACGT]      # Las letras A,C,G o T
+           # Una vez o más
$           # Fin de línea
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4



Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor slopal » 2006-04-10 19:34 @857

¡Muchas gracias!

Me faltaba el inicio y final :)
slopal
Perlero nuevo
Perlero nuevo
 
Mensajes: 78
Registrado: 2005-11-23 11:41 @528


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado