my $c= 'ODD_`!"£$%^&*(){}][@@;:/?.>,<|\'
我想将所有这些替换为特殊字符
如何以更快的方式实现这一目标..
my $c= 'ODD_\`\!\"\£\$\%\^\&\*\(\)\{\}\]\[\@\,\;\:\/\?\.\>\,\<\|\\'
答案 0 :(得分:4)
使用quotemeta
:
#!/usr/bin/env perl
use warnings; use strict;
my $c = 'ODD_`!"£$%^&*(){}][@@;:/?.>,<|\\';
print quotemeta($c), "\n";
请注意,$c
的定义无法编译,因为即使在单引号字符串中也必须转义\
。
答案 1 :(得分:0)
虽然我认为Sinan的答案对于我假设你需要的东西是正确的(基于你要逃脱的字符列表),但为了完整性,我将添加模块URI::Escape
,它逃脱了HTML文本中的元字符。它确实有一些设施来指定不安全的角色,所以也许它也可以帮到你。