我对perl中的正则表达式有一些问题。我正在尝试在另一个字符串的开头添加一个字符串(实际上,在文件名的开头插入一个字符串)。我想要的是,在插入该字符串之前检查文件是否已经以它开头。
这是我的代码:
if ($ficheroSinExt !~ m/^$strCadena/){
# if it doesn't exist at the beginning, I insert it...
$ficheroSinExt = $strCadena . " " . $ficheroSinExt;
}
else{
print "---->It already exists!!!n";
}
我正在用两个文件名测试它,只有一个文件名在开头包含[Perl]("[Perl] File1.pdf"和"File2.pdf"),$strCadena包含[Perl]。我最终为这两个文件添加了[Perl],所以它们的新名称是"[Perl] [Perl] File1.pdf"和"[Perl] File2.pdf"。
我认为问题来自匹配运算符的 ^$strCadena,但我没有解决它。你能帮我一把吗?
提前感谢,迭 戈
特殊字符:
if ($ficheroSinExt !~ m/^Q$strCadena/){
# here __^
你想禁用模式元字符(参见 perlre)
if ($ficheroSinExt !~ m/^Q$strCadenaE/){