2014-11-06 26 views
-4

在Perl中刪除角色,我有一個變量:從Perl的正則表達式

$var = 1M; 

但我想$var是唯一1。我不想在$varM。所以我在Perl中使用正則表達式如下:

$var = s/M/; 

但它不工作。

請幫忙。提前致謝。

+2

'$ var = s/M /'和'$ var = 1M'是無效的Perl表達式(裸字除外)。如果這就是你真的在你的代碼中寫的,那就是其中一個問題。如果不是,請修復它。提問時發佈近似代碼是不小心的。 – TLP 2014-11-06 08:23:29

+1

'$ var = s/M //'是'$ var = $ _ =〜s/M //'的縮寫。 – TLP 2014-11-06 08:25:00

回答

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

Srry我忘了波浪號〜現在已經修改了它...感謝info @mpapec – Praveen 2014-11-06 07:45:51