首先感谢您花时间阅读我的问题。
我正试图写一个正则表达式来检测不同格式的日期,我发现了许多关于这方面的问题,但没有一个符合我的要求。
下面是我需要检测的一些示例
16 SEPTEMBER 2016
October 2016
8/2016
11/03/2016
,这是我开始的代码,我有点卡住了,不知道如何从这里继续。我想做的是每个/有不止一个选项,例如月可以是文字或数字年可以是93或1993
这是我的代码
('d'd)+]?.?('d'd)?'w{3,9}?.('d'd'd'd)?|('d'd)?
非常感谢您的提前回复!
我不熟悉PHP,但是由于PHP使用Perl正则表达式函数作为扩展,所以这里有一个Perl程序可以从数组中打印出日期:
#!/usr/bin/perl
@array = ('16 SEPTEMBER 2016', 'October 2016', '8/2016', '18/2016', '11/03/2016', 'NOT A DATE 3534');
for $date (@array){
if($date =~ /^('d{1,2} [A-Za-z]+ 'd{4}$)|(^[A-Za-z]+ 'd{4}$)|(^'d{1,2}'/'d{4}$)|(^'d{2}'/d{2}'/'d{4}$)/){
print "$date'n";
}
}
如果需要,您可以编写稍微复杂一点的程序,根据可接受的月份列表进行检查,而不是匹配任何字母字符串。
如果有帮助请告诉我