我从互联网上获取了这个正则表达式。
RegExp.Pattern = "^(?:(?:(?:0?[13578]|1[02])(\/)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$"我只知道正则表达式的基本细节,并不知道所有的细节。我只知道它会检查日期是否为dd/mm/yyyy格式,以及日期是否为闰年。
我也不知道?:?:等是什么意思。
有没有人可以通过解释上面的正则表达式中的每个字符的含义来告诉我这个正则表达式的完整含义。
这对我的学习有很大帮助,因为我不能理解正则表达式中的大多数字符
发布于 2012-08-07 16:22:16
出于学习目的,您选择了一个可怕的正则表达式,这一点是肯定的(而且它至少包含一些瘤,如果不是完全的but,但我不打算调试这个乱七八糟的东西)。有人可能会争辩说,对于最好使用不同工具解决的问题,这是一个很好的例子。
我建议你先读一篇basic regex tutorial。这里有一些可以帮助你找到相关主题的指针:
^ Start of string anchor
(?...) Non-capturing group
(...) Capturing group
[...] Character class
? Quantifier (1 or 0 repetition of the previous token)
| Alternation ("or")
\2 Backreference to the second capturing group
\d Shorthand for digit
\/ (Unnecessary escape sequence, a simple / would work just fine)
$ End of string anchorhttps://stackoverflow.com/questions/11841378
复制相似问题