Regex 在Perl中立即删除下划线

Regex 在Perl中立即删除下划线,regex,perl,Regex,Perl,我想将字符串2018_12_03转换为20181203 现在我找到了一个解决办法,我可以怎么做 $varName =~ s#_##; 输出 201812_03 为了去掉第二个下划线,我又做了同样的事情 $varName =~ s#_##; $varName =~ s#_##; 产出2 20181203 它可以工作,但看起来不太好,所以我的问题是,是否可以一次删除所有下划线?Regex replace默认情况下只替换第一个匹配项。您可以通过指定g来替换所有匹配项: 如果只想删除单个字符的所有匹

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

现在我找到了一个解决办法,我可以怎么做

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

201812_03

为了去掉第二个下划线,我又做了同样的事情

$varName =~ s#_##;
$varName =~ s#_##;
产出2

20181203


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

Regex replace默认情况下只替换第一个匹配项。您可以通过指定g来替换所有匹配项:


如果只想删除单个字符的所有匹配项,可以使用音译而不是替换

$varName =~ tr/_//d;
/d表示删除:没有可音译的字符将被删除。

这就是/g修饰语的全局含义,因此s/\ug//g。阅读教程,比如
$varName =~ tr/_//d;