Regex “是否有一个正则表达式?”;foldernameMM_DD_YYYY“;

Regex “是否有一个正则表达式?”;foldernameMM_DD_YYYY“;,regex,perl,Regex,Perl,我正在设置定期运行的Perl脚本,删除不需要的文件夹,并按照命名约定标识组织自动生成的文件夹,如 文件夹名称mm\u DD\u YYYY 有人能帮我处理这个正则表达式吗?假设您正在查找一个日期,后跟字符串文字“foldername”,则不准确的版本可能是: /foldername[0-9][0-9]_[0-9][0-9]_[0-9][0-9][0-9][0-9]/ 这是不准确的,因为它会匹配“foldername98_76_5432”之类的内容。然而,这只是一个开始,你至少可以开始完善它 $f

我正在设置定期运行的Perl脚本,删除不需要的文件夹,并按照命名约定标识组织自动生成的文件夹,如

文件夹名称mm\u DD\u YYYY


有人能帮我处理这个正则表达式吗?假设您正在查找一个日期,后跟字符串文字“foldername”,则不准确的版本可能是:

/foldername[0-9][0-9]_[0-9][0-9]_[0-9][0-9][0-9][0-9]/
这是不准确的,因为它会匹配“foldername98_76_5432”之类的内容。然而,这只是一个开始,你至少可以开始完善它

$foldername = "abc";
if ($folder =~ m/^\Q$foldername\d{2}_\d{2}_\d{4}$/) {
  rmdir $folder; // `rmdir` works if folder is empty; otherwise you could `use File::Path 'rmtree'`;
}

注意:请注意,此regexp也接受无效日期(即:99_88_0000),但这对于您的用例来说不应该是一个问题。。。让regexp接受有效日期一点也不容易。。。例如,用一个简单的regexp来匹配闰年甚至是不可行的…

请分享您迄今为止尝试过的代码。?请接受最能回答您问题的答案。。。