2013-03-22 2 views
2

У меня есть одна строка "8.53" Я хочу, чтобы моя результирующая строка "853" Я попытался следующий кодКак заменить символ с нулевым

tr|.||; 

, но его не заменяя его подачи только 8.53. я попробовал другой путь, используя

tr|.|NULL|; 

, но его предоставление 8N53 может кто-нибудь пожалуйста, предложите мне, как использовать тр заменить символ с NULL.

Благодаря

+0

вы имеете в виду удалить персонаж? Вам, вероятно, не нужен нулевой символ ... – tjameson

+0

Да, я хочу удалить. персонаж . – 2013-03-22 07:26:17

ответ

7

Вы не хотите tr потому что транслитерирует символы из 1-го списка с соответствующим символом в 2 списка (который был N в вашем примере, так как это был первый символ). Вам понадобится оператор замещения.

my $var = "8.53"; 
$var =~ s/\.//; 
print $var; 

Добавьте g флаг, если существует несколько экземпляров, которые вы хотите заменить (s/\.//g).

+0

Большое спасибо за ответ. Он дает мне желаемый результат. – 2013-03-22 07:29:11

+2

Или, как показывает ikegami ниже, вы * do * want 'tr' - вам просто нужно дать ему правильный вариант ('/d') :-) –

15

Вы должны указать d модификатор для удаления символов без соответствующего полукокса:

tr/.//d; 

Или вы могли бы использовать (медленный, но более знакомый) оператор подстановки:

s/\.//g; 
Смежные вопросы