Regex Pal

Dan's Tools


For dates like gg-aa-yyyy (ex: 31-01-1999) gg.aa.yyyy (ex: 21.12.2048) gg/aa/yyyy (ex: 19/12/2999) I created this regex, and can be changed for reverse dates as follows: /([1-2][0-9][0-9][0-9])(-|\/|\.)([0][1-9]|[1][0-2])(-|\/|\.)(10|20|30|31|[0-2][1-9])/gm example dates : yyyy-aa-gg yyyy/aa/gg I have limited it from year 1000 to 2999, which will be more than enough for me in my date analysis on table which I used on a project but I believe it will be helpful. The only lack of expression is for February, it will accept dates like 31/02/1999 or 30/02/2000


Top Regular Expressions

Cheat Sheet

Character classes
. any character except newline
\w \d \s word, digit, whitespace
\W \D \S not word, digit, whitespace
[abc] any of a, b, or c
[^abc] not a, b, or c
[a-g] character between a & g
^abc$ start / end of the string
\b word boundary
Escaped characters
\. \* \\ escaped special characters
\t \n \r tab, linefeed, carriage return
\u00A9 unicode escaped ©
Groups & Lookaround
(abc) capture group
\1 backreference to group #1
(?:abc) non-capturing group
(?=abc) positive lookahead
(?!abc) negative lookahead
Quantifiers & Alternation
a* a+ a? 0 or more, 1 or more, 0 or 1
a{5} a{2,} exactly five, two or more
a{1,3} between one & three
a+? a{2,}? match as few as possible
ab|cd match ab or cd