回答
您應該檢查出a tutorial。有任何勉強在那裏先進的(當然除了那些\1
你指出來):
^ # the start of the string
\d # a digit
{1,2} # 1 or 2 of those
( # start the first subpattern, which can later be referred to with \1
\- # a literal hyphen (there is no need for escaping, but it doesn't hurt)
| # or
\/ # a literal slash
| # or
\. # a literal period
) # end of subpattern
\d{1,2} # one or two more digits
\1 # the exact same thing that was matched in the first subpattern. this
# is called a backreference
\d{4} # 4 digits
$ # the end of the string
即這聲明輸入的字符串恰好包含格式爲ddmmyyyy
(或者也可以是mmddyyyy
)的一個日期(不多不少於),其中可能的分隔符爲.
,-
或/
(以及一致的分隔符用法)。請注意,它不能確保正確的日期爲。月和日可以是從00
到99
之間的任何值。
注意\d
的確切含義取決於您使用的正則表達式引擎和文化。 通常這意味着[0-9]
(任何ASCII碼)。但是,例如在.NET中,它也可以表示「任何代表數字的Unicode字符」。
^
串的開始\d{1,2}
相配1或2位數字(0-9)(\-|\/|\.)
匹配或者一個 「 - 」 OR 「/」 OR 「」\d{1,2}
相配1或2位數字(0-9)再次\1
是反向引用。匹配組捕獲的同一字符的另一個實例在第3號\d{4}
相配4位數字$
串
結束這將匹配下列格式的日期。請注意,dd
,mm
和yyyy
範圍未被檢查,所以日期仍然可能無效。
d-m-yyyy
d/m/yyyy
d.m.yyyy
d
& m
可以是每1個或 2位數字。
關於格式清單:月可以是一個單一的數字 – Bergi
@Bergi哦廢話。組合將是兩倍。我只是提到這一點。 :) –
它匹配:
- 一個或兩個數字
- 破折號,斜線或週期
- 一個或兩個數字
- 另一個分離器就像一個早期
- 四位
\1
是對第th e值與第一組匹配,即(\-|\/|\.)
。
例如:
2-14-2003
99.99.9999
1/2/0001
氣味像一個蹩腳的日期正則表達式 – Bohemian
- 1. 這個正則表達式有什麼作用?
- 2. 這個正則表達式有什麼作用?
- 3. 這個Perl正則表達式有什麼作用?
- 4. 這個正則表達式有什麼作用?
- 5. 這個正則表達式有什麼作用?
- 6. 這個正則表達式有什麼作用?常規
- 7. 這個正則表達式做什麼?
- 8. 這個正則表達式做什麼?
- 9. 爲什麼這個正則表達式只有一半工作?
- 10. Java正則表達式 - 這些部分各有什麼作用?
- 11. 這個表達式有什麼作用?
- 12. 爲什麼這個Java正則表達式不起作用?
- 13. 爲什麼這個JavaScript正則表達式不起作用?
- 14. 爲什麼這個MySql正則表達式不起作用?
- 15. 爲什麼這個ruby正則表達式不起作用?
- 16. 爲什麼這個正則表達式不起作用?
- 17. 爲什麼這個正則表達式不起作用?
- 18. 爲什麼這個正則表達式不起作用({m,n})?
- 19. 爲什麼這個rails正則表達式不起作用?
- 20. 爲什麼這個Bash正則表達式不起作用?
- 21. 爲什麼這個正則表達式不起作用?
- 22. 爲什麼這個正則表達式不起作用?
- 23. 爲什麼這個正則表達式不起作用?
- 24. 這個正則表達式爲什麼起作用?
- 25. 爲什麼這個JavaScript的正則表達式不起作用?
- 26. 爲什麼這個正則表達式測試不起作用?
- 27. 爲什麼這個正則表達式似乎不起作用?
- 28. 爲什麼不用這個正則表達式替換工作?
- 29. 什麼是MySQL的SQL正則表達式這個表達式
- 30. 這個正則表達式有什麼問題? (「」使用)
http://www.regular-expressions.info/brackets.html#usebackrefinregex – Bergi