如何用转义字符替换特殊字符

时间:2011-02-01 17:36:49

标签: perl

my $c=  'ODD_`!"£$%^&*(){}][@@;:/?.>,<|\'

我想将所有这些替换为特殊字符

如何以更快的方式实现这一目标..

my $c=  'ODD_\`\!\"\£\$\%\^\&\*\(\)\{\}\]\[\@\,\;\:\/\?\.\>\,\<\|\\'

2 个答案:

答案 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文本中的元字符。它确实有一些设施来指定不安全的角色,所以也许它也可以帮到你。