2014-11-06 4 views
-4

В Perl, у меня есть переменная:Чтобы удалить символ из Perl Regex

$var = 1M; 

Но я хочу $var быть только 1. Я не хочу M в $var. Поэтому я использую регулярное выражение в Perl как:

$var = s/M/; 

Но его не работает.

Пожалуйста, помогите. Заранее спасибо.

+2

'$ var = s/M /' и '$ var = 1M' являются недопустимыми выражениями Perl (исключаются только слова). Если вы так написали это в своем коде, это одна из проблем. Если нет, то, пожалуйста, исправьте это. Если вы задаете вопрос, не следует публиковать приблизительный код. – TLP

+1

'$ var = s/M //' short для '$ var = $ _ = ~ s/M //'. – TLP

ответ

1

Вы забываете добавить замену. Синтаксис для кода замены будет $variable =~ s/regex/replacement-string/modifier. Добавьте модификатор g в нижеследующий код, если вы хотите, чтобы замена произошла во всем мире.

use strict; 
use warnings; 
my $var = "1M"; 
$var =~ s/M//; 
print "$var\n"; 

Выход:

1 
0
$var=~s/M//g; 

Это должно работать. Я бы предложил сначала прочитать хороший учебник.

0

Вы использовали неправильный синтаксис для замены. Попробуйте использовать строгое использование; и использовать предупреждения;

use strict; 
use warnings; 

my $var = "1M"; 
$var =~ s/M//; 

print $var; 
+0

Счастье Я забыл символ тильды ~ и изменил его сейчас ... Спасибо за информацию @mpapec – Praveen

Смежные вопросы