簡體   English   中英

為此類日期創建正則表達式

[英]Creating a regular expression for this type of dates

我首先要感謝您花時間閱讀我的問題。

我正在嘗試編寫一個正則表達式來檢測不同格式的日期,我發現了很多關於此的問題,但沒有一個符合我的要求。

以下是我需要檢測的一些示例

16 SEPTEMBER 2016 
October 2016
8/2016
11/03/2016

這是我開始的一小段代碼,我有點卡住了,不知道如何從這里開始。 我想要做的基本上是每個 / 有超過 1 個選項,例如月份可以是文字或數字,年份可以是 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";
    }
}

如果需要,您可以編寫一個稍微復雜一些的程序來檢查可接受的月份列表而不是匹配任何字母字符串。

如果這有幫助,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM