标签: regex perl
考虑这个例子,
$relPath = '..\A\B/C/D/E'; $contentsDir = '..\A\B'; $relPath =~ s/$contentsDir//; print "$relPath\n"; #Desired output: '/C/D/E' #Actual output: '..\A\B/C/D/E'
请帮助..这种不必要的插值使得无法计算它。
答案 0 :(得分:5)
\Q
\E
quotemeta
以下是一个例子:
#!/usr/bin/perl -w use strict; my $string = 'abc.*def'; my $sub = '.*'; $string =~ s/c\Q$sub\E/d/; # or $string = 'c' . quotemeta($sub) . 'd'; print $string; # abef
答案 1 :(得分:4)
在匹配之前引用quotemeta的特殊正则表达式字符,
$contentsDir = quotemeta '..\A\B';