Perl remove caracteres em uma string


0

Eu tenho uma variável $ cbDescription em um script Perl. Quando imprimo $ cbDescription, recebo o seguinte:

tIP SOLD -5 /ESH4 @1832.00

Eu quero remover qualquer + ou - ou @ sinais ou vírgulas da seqüência de caracteres, então eu tenho a seguinte linha:

$cbDescription =~ s/[+-\@,]//g;

Espero que essa linha altere $ cbDescription para:

tIP SOLD 5 /ESH4 1832.00

Mas quando eu imprimo $ cbDescription depois dessa linha, eu recebo:

tIP SOLD  ESH

Por que também removeu todos os números e o ponto decimal?

Respostas:


1

- é um delimitador de intervalo entre parênteses sou você precisa fugir dele:

% echo "tIP SOLD -5 /ESH4 @1832.00" | perl -pi -e 's/[+\-\@,]//g'
tIP SOLD 5 /ESH4 1832.00

2
Você também pode especificá-lo como o primeiro caractere da classe.
choroba
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.