Regex 如何在Perl正则表达式中转义左参数?

Regex 如何在Perl正则表达式中转义左参数?,regex,perl,shell,replace,Regex,Perl,Shell,Replace,如果我有一个包含一些转义参数的文件,如何使用Perl用一个未转义参数替换所有实例 i、 e.把这个翻过来: .... foo\(bar .... 进入这个 .... foo(bar .... 我尝试了以下操作,但收到此错误消息: perl -pe "s/\\\(/\(/g" ./file Unmatched ( in regex; marked by <-- HERE in m/\\( <-- HERE / at -e line 1. perl-pe“s/\\\(/\(/g)。

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

i、 e.把这个翻过来:

.... foo\(bar ....
进入这个

.... foo(bar ....
我尝试了以下操作,但收到此错误消息:

perl -pe "s/\\\(/\(/g" ./file
Unmatched ( in regex; marked by <-- HERE in m/\\( <-- HERE / at -e line 1.
perl-pe“s/\\\(/\(/g)。/file

Unmatched(在正则表达式中,用标记)您忘记了反斜杠对shell也意味着什么。尝试使用单引号而不是双引号。(或者将脚本放在一个文件中,这样您就不必担心shell引用。)

Gah。从命令行开始,同样如此。元字符解释的级别太多了

尝试将双引号替换为单引号,看看是否有帮助。

可能是最好的。如果必须在命令行中执行此操作,请尝试使用或(\Q…\E)。这在bash提示符下对我有效:

perl -pe "s/\Q\(\E/(/g" ./file

嘎,真不敢相信我没想到。星期五来得太快了。谢谢,你比先前的答案晚了8秒。干杯