[android] Valid Email Regex

> 1: Valid Email Regex

^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6})*$
Character Set
[a-zA-Z0-9._%-] // from the regex above
a-z : Range -- Matches a character in the range "a" to "z" 

(Case Sensitive)
A-Z : Range -- Matches a character in the range "A" to "Z"

(Case Sensitive)
0-9 : Range -- Matches a character in the range "0" to "9"
. : Character -- Matches a "." character
_ : Character -- Matches a "_" character
% : Character -- Matches a "%" character
- : Character -- Matches a "-" character

Cheat Sheet
[abc] : ANY OF "a" , "b" , or "c"
[^abc] : NOT "a" , "b" , or "c"
[a-g] : Characters between "a" & "g"
Quantifiers
[a-zA-Z0-9._%-]+ // from the regex above
a* : 0 or more of the preceding token *important*
a+ : 1 or more of the preceding token *important*
Alternation
a-zA-Z]{2,6} // from the regex above
a{5} : exactly 5
a{2,} : two or more
a{1,3} : between 1 & 3 (1 , 2 or 3)

> 2: Password Strength

(?=(.*[0-9]))(?=.*[!@#$%^&*()-_+=~`|:;\"'<>,./?])(?=.*[a-z])(?=(.*[A-Z]))(?=(.*)).{8,}

> 3: Dates (YYYY-MM-dd)

Alternation
ab | cd : match ab or cd
([12]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01]))
([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))
for regexr
or
([12]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01]))