2
A
回答
4
/^([0-3][0-9])-([A-Z]{3})-([0-1][0-9])$/
編輯: /^(0[1-9]|[1-2][0-9]|3[0-1])-([A-Z]{3})-(0[1-9]|1[0-9])$/
+3
你應該說什麼OP做錯了... – bobbymcr 2009-12-06 07:48:20
1
/^([0-3][0-9])-([A-Za-z]+)-([0-1][0-9])$/
1
字符類將用方括號表示。
/^([0-3][0-9])-([A-Za-z]+)-([0-1][0-9])?$/
0
刪除該?。你可以刪除括號,除非你拉子字符串匹配:
/^([0-3][0-9])-([A-Z][A-Z][A-Z])-([0-1][0-9])$/
或
/^[0-3][0-9]-[A-Z][A-Z][A-Z]-[0-1][0-9]$/
3
過於迂腐,這個正則表達式匹配它:22-NOV-09
。
如果你想要的是要驗證給定的字符串是否是一個特定格式的驗證日期,那麼我建議使用類似strptime
的東西。例如:
#define _XOPEN_SOURCE
#include <time.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
struct tm tm;
char *p;
p = strptime(argv[1], "%d-%b-%y", &tm);
if (p && *p == '\0') {
printf("Matches\n");
return 0;
}
else {
printf("Didn't match\n");
return 1;
}
}
Python有datetime.datetime.strptime
,和Perl有POSIX::strptime
。我相信大多數其他語言也可以訪問這個功能。
相關問題
- 1. 如何匹配這種模式? (Java /正則表達式)
- 2. 正則表達式匹配這種重複模式?
- 3. '\ $'正則表達式匹配什麼?
- 4. 這個正則表達式有什麼問題,試圖匹配模式name1.name2?
- 5. 這個正則表達式匹配什麼/什麼時候?
- 6. 這個正則表達式匹配URL有什麼問題?
- 7. php正則表達式匹配模式
- 8. 正則表達式匹配模式php
- 9. 正則表達式匹配此模式
- 10. 正則表達式模式匹配
- 11. 模式匹配 - 正則表達式
- 12. 正則表達式 - 不匹配模式
- 13. 匹配正則表達式模式
- 14. Java模式匹配正則表達式
- 15. 匹配模式正則表達式coldfusion
- 16. 正則表達式匹配[/,。] ng模式
- 17. C#正則表達式模式匹配
- 18. 正則表達式匹配模式
- 19. 正則表達式匹配模式「\\ [。* \\]」是什麼意思?
- 20. 正則表達式 - 匹配外來字符的正則表達式是什麼?
- 21. 什麼正則表達式可以匹配這些數據?
- 22. 爲什麼這個正則表達式無法匹配?
- 23. 爲什麼這個正則表達式不匹配?
- 24. 爲什麼這個正則表達式匹配?
- 25. 爲什麼這個正則表達式不匹配HTML標籤?
- 26. 什麼導致這個正則表達式匹配一切?
- 27. 爲什麼正則表達式匹配這個文本?
- 28. 這個正則表達式匹配什麼?
- 29. 爲什麼在perl中這個正則表達式不匹配
- 30. 爲什麼這個正則表達式匹配?
您是否需要正則表達式來驗證日期是否爲有效日期?在這種情況下,我會避免使用這種正則表達式,他們也會匹配39-OTZ-03,這可能不是你想要的。 – 2009-12-06 07:43:38
我絕對同意你 - 事情是我沒有驗證用戶輸入,我確保在解析CSV導入時沒有列偏移問題。它是這種格式中唯一的一列,fastcodejava的答案就像一個魅力! – Drew 2009-12-07 20:15:37