2014-12-17 9 views
0

Я хочу, чтобы заменить эту строку:как заменить ЭОД символы в Perl, чтобы получить желаемый результат

@N9*BM*[email protected] 

с:

@N9*BM*[email protected] 

в Perl.

Я пробовал это, но он не сработал.

#!/usr/bin/perl 
$string = "@N9*BM*[email protected]"; 
$string =~ s/"N9.BM.MSCU"/"N9*BM*"/; 
print "$string\n"; 
+1

Пожалуйста, пост код, который вы пробовали и ошибки, которые вы получили. – paqogomez

+0

#!/Usr/bin/perl $ string = "@ N9 * BM * MSCUMF036299 @"; #print "$ string \ n \ @ \ *"; $ string = ~ s/"N9.BM.MSCU"/"N9 \ * BM \ *" /; print "$ string \ n"; –

+0

Почему не просто: 's/MSCU //;'? – Toto

ответ

0

Я попытался это, но он не работал.

$string = "@N9*BM*[email protected]"; 
$string =~ s/"N9.BM.MSCU"/"N9*BM*"/; 

Поскольку вы использовали двойные кавычки символьной строки, неопределенная массив переменной @N9 интерполировалась, получая $string = "*BM*[email protected]". Чтобы этого избежать, используйте одинарные кавычки.
Кроме того, котировки в s/"N9.BM.MSCU"/"N9*BM*"/ неуместны.
Правильно:

$string = '@N9*BM*[email protected]'; 
$string =~ s/N9.BM.MSCU/N9*BM*/;