[Rio-pm] Dúvida com split

Enrique Pessoa enrique.pessoa em rrd.com
Sexta Novembro 7 07:23:32 PST 2014


Aureliano,

Sobre, \w, \W, \s, \S, mais informações em
http://perldoc.perl.org/perlre.html#Regular-Expressions , item Character
Classes and other Special Escapes.

Para casar apenas com um A, C, U ou G você deveria usar /[ACUG]/. Para
casar com 3 dessas letras acrescente {3} para indicar 'três vezes', assim: /
[ACUG]{3}/

No caso da sequências de caracteres com as quais você está trabalhando (que
contém sempre apenas essas letras), todas as outras opções abaixo são
válidas, mas não necessariamente apropriadas.
/.{3}/ - três caracteres quaisquer
/\w{3}/ - três letras
/\D{3}/ - três não digitos
/\S{3}/ - três não espaço
/[^vV]{3}/ - três caracteres que não sejam a letra v
/[ACUG]{3}/i - três caracteres que sejam A, C, U ou G (podendo ser
minúsculas)


Quanto às formas de se obter partes de uma sequência de caracteres, eu só
tenho o hábito de usar split quando quero remover o delimitador.

my $lista_de_numeros = '12,23,34';
my $delimitador = ',';
my @numeros = split($delimitador, $lista_de_numeros);


Uma outra forma possível de fazer esse mesmo trabalho é:

my @codons;
# global continue pegando de um a três caracteres (para caso len($ma) mod 3
não dê zero)
while ($ma =~ /\G(.{1,3})/gc) {
  push @codons, $1;
}

Abraços,

Enrique Pessôa
________________________________________________________________
*Enrique Pessôa | Technology Products Manager, Brazil | RR Donnelley |
Global Capital Markets*
+55 21 2103.0508 | enrique.pessoa em rrd.com | +55 21 9.8127.0077

* <http://www.infoinvest.com.br/> | 15 anos de tecnologia para RI | Clique
para conferir
<https://www.youtube.com/watch?v=gkxxbshF4Ic&feature=youtu.be>*


Em 7 de novembro de 2014 12:51, Daniel Vinciguerra <
dan.vinciguerra em gmail.com> escreveu:

> pode usar o split mesmo...
>
> my @array = split '(\w{3})', $rna;
>
>
> *Daniel Vinciguerra (@dvinciguerra)*
> Web solution architect, perl dev, vegetarian, geek and co-founder at
> *Bivee*
> bivee.com.br  -  github.com/Bivee
>
> 2014-11-07 12:03 GMT-02:00 Aureliano Guedes <guedes_1000 em hotmail.com>:
>
> Funcionou, o fato é que ainda não aprendi bem regex então não conhecia o
>> \w. Mas compreendi completamente o código.
>> Obrigado.
>>
>> ------------------------------
>> Date: Fri, 7 Nov 2014 11:47:06 -0200
>> From: leprevostfv em gmail.com
>> To: rio-pm em pm.org
>> Subject: Re: [Rio-pm] Dúvida com split
>>
>>
>> Oi Aureliano,
>>
>> tenta o seguinte:
>>
>> my @codons = $rna =~ m/\w{3}/g;
>>
>> abraços
>>
>>
>> On 07-11-2014 11:44, Aureliano Guedes wrote:
>>
>> Ola monges,
>>
>> Tenho uma dúvida simples.
>> Digamos que eu tenha uma string com uma sequencia de RNA:
>> $rna = 'AUGACGAAGCGUUGAUCC';
>> Só hipotético mesmo.
>>
>> Então quero agrupar de 3 em 3 letras (nucleotídeos) formando codons:
>> AUG ACG AAG CGU UGA UCC
>>
>> Para isso eu acho conveniente colocar em um array, e faço isso usando um
>> split
>> my @codons = split /condição/, $dna;
>>
>> O meu problema é na condição, não estou conseguindo uma condição para
>> agrupar de 3 em 3 letras já tentei:
>> /(A|C|U|G){3}/
>> /(A|C|U|G)(A|C|U|G)(A|C|U|G)/
>> /(d+){3}/
>> /d+\d+\d+\/
>> /d+{3}/
>> /d+d+d+/
>> Ate tentei mexer no split
>> my @codons = /(A|U|C|G)/, $rna, 3;
>>
>> Sei que a dúvida é besta, mas alguém de daria uma luz?
>> Obrigado.
>>
>>
>> _______________________________________________
>> Rio-pm mailing listRio-pm em pm.orghttp://mail.pm.org/mailman/listinfo/rio-pm
>>
>>
>> --
>> Felipe da Veiga Leprevost, PhD.www.leprevost.com.br
>> Laboratory for Proteomics and Protein Engineering.
>> Fiocruz, Brazil.
>>
>>
>> _______________________________________________ Rio-pm mailing list
>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20141107/8d481fb7/attachment-0001.html>


Mais detalhes sobre a lista de discussão Rio-pm