У меня есть переменная $ cbDescription в сценарии Perl. Когда я распечатываю $ cbDescription, я получаю следующее:

tIP SOLD -5 /ESH4 @1832.00

Я хочу удалить любые + или - или @ знаки или запятые из строки, поэтому у меня есть следующая строка:

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

Я ожидаю, что эта строка изменит $ cbDescription на:

tIP SOLD 5 /ESH4 1832.00

Но когда я распечатываю $ cbDescription после этой строки, я получаю:

tIP SOLD  ESH

Почему он также удаляет все цифры и десятичную точку?

1 ответ1

1

- это разделитель диапазона между скобками, так что вам нужно избегать его:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .