perl 和变量名中的正则表达式



我对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/){

最新更新