Regex PERL |从3行到1行的简单正则表达式。更改字符和删除字符

Regex PERL |从3行到1行的简单正则表达式。更改字符和删除字符,regex,perl,Regex,Perl,我试图用PERL在一行中获得这段代码 可能吗 $sdn = '"OMC=1,IONU=1,RACK=3,SR=6,SLOT=8,LPRU=1"'; # Format: Remove "=". Replace "," by "." $sdn =~ s/[,]/./g; #tr[,][.]; $sdn =~ s/[=]//g; $sdn =~ s/["]//g; print $sdn; 在线perl编辑器:为什么不使用内置翻译tr?我的答案的第一部分包含你的解决方案,下一部分是我的翻译 my $

我试图用PERL在一行中获得这段代码

可能吗

$sdn = '"OMC=1,IONU=1,RACK=3,SR=6,SLOT=8,LPRU=1"';  # Format: Remove "=". Replace "," by "."
$sdn =~ s/[,]/./g; #tr[,][.];
$sdn =~ s/[=]//g;
$sdn =~ s/["]//g;
print $sdn;

在线perl编辑器:

为什么不使用内置翻译
tr
?我的答案的第一部分包含你的解决方案,下一部分是我的翻译

my $sdn = '"OMC=1,IONU=1,RACK=3,SR=6,SLOT=8,LPRU=1"';  # Format: Remove "=". Replace "," by "."
$sdn =~ s/[,]/./g; #tr[,][.];
$sdn =~ s/[=]//g;
$sdn =~ s/["]//g;
print $sdn;            # OMC1.IONU1.RACK3.SR6.SLOT8.LPRU1

# re-assigned the same thing and used translation
$sdn = '"OMC=1,IONU=1,RACK=3,SR=6,SLOT=8,LPRU=1"';  # Format: Remove "=". Replace "," by "."
$sdn =~ tr/,="/./d;    # OMC1.IONU1.RACK3.SR6.SLOT8.LPRU1
print $sdn;

因为我的答案被否决了,所以我在评论中给你一个解决方案,而不是三行,只使用这一行:
$sdn=~s/(,)|[=”]/$1?。:“/eg;
,这正是same@Toto这正是我所需要的,谢谢!!!看,有一篇帖子正是你想要的-。我用Toto解决方案:
$sdn=~s/(,)|[=“]/$1?”:“”/eg对于替换,TR比S快,因此我将更改我对您代码的解决方案,谢谢@戴维冈·萨莱扎里亚斯:托托的解决方案很有效,但翻译比替换快。此外,在这种情况下,如果您还需要添加其他字符,您可以添加翻译,而无需担心在替换中添加任何条件。