[SP-pm] Remover 0x0D (aka carriage return) do final de uma linha

Otavio Pereira otavio.pereira at gmail.com
Mon Jul 26 07:50:12 PDT 2010


>
> perldoc é nosso amigo e nada nos faltará :-)
>

Luiz obrigado pela sugestão. No FM :-) tem a resposta da segunda parte do
meu e-mail. Tentei usar o hexadecimal, com sintaxe errada o que explica o
não funcionamento, porque o \r não funcionou, mas R(ing)TFM, no perlre está
escrito explicitamente que o "match" do EOL é o \R.

"\R" will atomically match a linebreak, including the network line-ending
"\x0D\x0A".
       Specifically,  is exactly equivalent to

         (?>\x0D\x0A?|[\x0A-\x0C\x85\x{2028}\x{2029}])

       Note: "\R" has no special meaning inside of a character class; use
"\v" instead
       (vertical whitespace).


Só fiquei em dúvida do que ele quer dizer na nota.

@Renato Santos: Legal esse detalhe do global! Vou manter isso em mente.

Obrigado a todos,
Otávio


2010/7/23 Luis Motta Campos <luismottacampos em yahoo.co.uk>

> On 07/22/2010 04:11 PM, Otavio Pereira wrote:
> > Aproveitando o e-mail porquê
> >
> >     $x =~ s/0x0d//g;
> >
> > não funciona?
> >
> > Alguma sugestão?
>
> Sugiro que você RTFM(*) "perlre", onde se explica como usar notação
> hexadecimal em expressões regulares.
>
> A minha implementação da sua expressão seria mais como
>
> s{\x0D}{}g
>
> Ou a ainda mais legível
>
> s{\r}{}g
>
> O que você está fazendo de errado é negando que você tem um problema de
> arquitetura nos seus programas: você lê e processa arquivos com duas
> codificações diferentes (linhas terminadas com "\r\n" ou "\n" -- padrão
> "Windows" ou "unix"), mas não faz nada explícito para detectar o padrão
> e se comportar de acordo no seu programa. Você poderia começar assumindo
> que todas as linhas que você ler de um mesmo arquivo vão estar no mesmo
> formato, e partir daí.
>
> Eu recomendo construir um Iterador flexível o bastante para repetir o
> padrão para todas as linhas do arquivo, baseado em Iterator::IO::ifile,
> e transformar isso numa biblioteca que você pode até subir para o CPAN.
>
> Putamplexos
> --
> Luis Motta Campos is a DBA,
> Perl Programmer, foodie and photographer.
>
> (*) Querendo dizer "Read The FRIENDLY Manuals"
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20100726/f7c2997a/attachment.html>


More information about the SaoPaulo-pm mailing list