Regex 如何在Perl正则表达式中转义左参数?
如果我有一个包含一些转义参数的文件,如何使用Perl用一个未转义参数替换所有实例 i、 e.把这个翻过来: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)。
.... 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秒。干杯