如何在Perl正则表达式中逃脱左派?

dme*_*cer 3 regex shell perl replace

如果我有一个包含一些转义的parens的文件,如何使用Perl用未转义的paren替换所有实例?

即转此:

.... foo\(bar ....
Run Code Online (Sandbox Code Playgroud)

进入这个

.... foo(bar ....
Run Code Online (Sandbox Code Playgroud)

我尝试了以下但是收到了此错误消息:

perl -pe "s/\\\(/\(/g" ./file
Unmatched ( in regex; marked by <-- HERE in m/\\( <-- HERE / at -e line 1.
Run Code Online (Sandbox Code Playgroud)

cjm*_*cjm 11

你忘记了反斜杠对shell的意义也是如此.尝试使用单引号而不是双引号.(或者将您的脚本放在一个文件中,您不必担心shell引用.)


cha*_*aos 6

嘎.从命令行,不能少.方式解释太多级别的元字符.

尝试用单引号替换双引号,看看是否有帮助.