这是我的正则表达式:
^.+/.+.sql.+$
它匹配
/somedir/abc.sql.20121212
但它不匹配
/somedir/abc.sql20121212
/somedir/abc.sql_20121212
我做错了什么? sql.+$
不应该意味着匹配"sql"和它之后的至少一个字符吗?
更新:上述正则表达式确实有效。 我得到了意想不到的结果,因为我没有保存存储正则表达式的配置文件(DUH !!! 前一个值是^.+/.+.sql..+$
这意味着必须是"sql.",并且它后面至少有一个字符。 对不起,误惊一场。
实际上,它们确实匹配:
print "$_: ", /^.+/.+.sql.+$/ ? 'match' : 'no match', "n"
for qw(
/somedir/abc.sql.20121212
/somedir/abc.sql20121212
/somedir/abc.sql_20121212
);
输出
/somedir/abc.sql.20121212: match
/somedir/abc.sql20121212: match
/somedir/abc.sql_20121212: match