在Perl中立即删除下划线

时间:2019-07-09 07:20:42

标签: regex perl

我想将字符串2018_12_03转换为20181203。

现在我找到了解决方法。

$varName =~ s#_##;

输出

  

201812_03

要删除第二个下划线,我再次做了相同的操作。

$varName =~ s#_##;
$varName =~ s#_##;

输出2

  

20181203

它可以工作,但是看起来不太好,所以我的问题是,是否可以一次删除所有下划线?

2 个答案:

答案 0 :(得分:6)

如果您只想删除所有出现的单个字符,则可以使用音译代替替换。

$varName =~ tr/_//d;

/d的意思是“删除”:没有任何要音译的字符将被删除。

答案 1 :(得分:4)

默认情况下,正则表达式替换仅替换第一个匹配项。您可以通过指定modifier g来替换所有匹配项:

$varName =~ s#_##g;