用于检查perl中的日期格式的正则表达式

时间:2017-07-12 13:28:32

标签: regex perl date

我在创建用于检查日期的正则表达式时出现问题,如下所示:

2017-07-12 14:41:56.784

我需要在perl中创建它,但它对我来说完全是新的。有任何建议如何编写以及如何使用“IF”条件?

2 个答案:

答案 0 :(得分:3)

您可以尝试模块Regexp::Common::time

use Regexp::Common qw(time);                           
my $str = "2017-07-12 14:41:56.784";                   
print "Time Gentlemen" if $str =~ m/^$RE{time}{iso}\z/ ;

Regexp::Common模块使各种事物的正则表达式更容易使用,并且可能更不容易出错。 有助于牢记JWZ关于正则表达式的臭名昭着的caveat - 但使用perl和Regexp::Common可以让人保持冷静并继续前进。

答案 1 :(得分:0)

无需包含任何模块, 要匹配任何日期时间,请执行以下操作:2017-07-12 14:41:56.784

例如"2017-07-12 14:41:56.784"

$str="2017-07-12 14:41:56.784"; 
if($str =~ /[1-9]{1}[0-9]{3}\-[0-9]{2}\-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{3}/)
{
    print "match found";
}