-1 regex string perl special-characters
我有一个带有特殊字符和换行符的Perl字符串,需要传递给命令行实用程序(除非转义,否则不接受特殊字符).
如何用前面的每个特殊字符替换\?
我可以单独替换每个字符,但想知道是否有更好的方法?
从spreasheet中的单元格读取时,字符串如下所示.
<meta property="og:url" content="http://www.example.com/test/testpage.aspx?ID=OO3JUPVSWjs%3d&ContentTypeId=qbeAILfmBIE%3d" />
Run Code Online (Sandbox Code Playgroud)
我试过了 $str =~ /^\Q$str\E/;
但是当变量传递给命令行实用程序时失败.
正如您已经指出的那样,您可以使用 quotemeta
$str = quotemeta $str;
Run Code Online (Sandbox Code Playgroud)
但是,如果由于某种原因这不好,您可以构建自己想要转义的字符类
$str =~ s/([\\'"])/\\$1/g;
Run Code Online (Sandbox Code Playgroud)