在perl中,如何在一次传递中用一组不同的字符替换一组字符?

Tho*_*day 5 perl

鉴于......

Ax~B~xCx~xDx
Run Code Online (Sandbox Code Playgroud)

... 发射 ...

A~-B-~C~-~D~
Run Code Online (Sandbox Code Playgroud)

我想用〜替换〜字符,用x替换x字符.

我可以写......

s/~/-/g;s/x/~/g; 
Run Code Online (Sandbox Code Playgroud)

...但是(看起来像)经过两次字符串.

m0s*_*it0 14

根据字符使用"音译"进行替换.试试这个:

tr/~x/\-~/;
Run Code Online (Sandbox Code Playgroud)

  • 你正在寻找`tr/~x/ - 〜/`.你的音译不使用正则表达式元字符,它将它们视为字符串文字,将`[`替换为```````````` (7认同)
  • "音译",而不是"翻译" (5认同)
  • 方括号在这里是不需要的和无用的. (5认同)