perl 정규식을 사용하여 주어진 문자열에서 여러 특수 문자를 이스케이프 처리하려고합니다. 그것은 달러 기호를 제외한 모든 문자에 대해 잘 작동합니다. 나는 시도 다음
my %special_characters;
$special_characters{"_"} = "\\_";
$special_characters{"$"} = "\\$";
$special_characters{"{"} = "\\{";
$special_characters{"}"} = "\\}";
$special_characters{"#"} = "\\#";
$special_characters{"%"} = "\\%";
$special_characters{"&"} = "\\&";
my $string = '$foobar';
foreach my $char (keys %special_characters) {
$string =~ s/$char/$special_characters{$char}/g;
}
print $string;
더 나은 접근법 :'quotemeta()'또는's/\ Q $ char \ E/...'를 사용하십시오. 모든 $ 변수에 대해 regexps가이를 보간하기 때문에 이것을 기억해야합니다. – hhaamu