regex
The regular expression that an EmailAddress should match.
Based on RFC-5322, the underlying pattern is ^[A-Za-z]+(?:\.[A-Za-z]+)*@(?:[A-Za-z][A-Za-z\d-]{0,61}[A-Za-z\d]\.)*[A-Za-z][A-Za-z\d-]{0,61}[A-Za-z\d]$.
Here's the explanation associated to each symbol used in this regular expression:
^Beginning. Matches the beginning of the string, or the beginning of a line if the multiline flag (m) is enabled.[]Character set. Match any character in the set.A-ZRange. Matches a character in the range "A" to "Z" (char code 65 to 90). Case-sensitive.a-zRange. Matches a character in the range "a" to "z" (char code 97 to 122). Case-sensitive.+Quantifier. Match 1 or more of the preceding token.(?:)Non-capturing group. Groups multiple tokens together without creating a capture group.\.Escaped character. Matches a "." character (char code 46).*Quantifier. Match 0 or more of the preceding token.@Character. Match a "@" character (char code 64).\dDigit. Matches any digit character (0-9).-Character. Matches a "-" character (char code 45).{0,61}Quantifier. Match between 0 and 61 of the preceding token.$End. Matches the end of the string, or the end of a line if the multiline flag (m) is enabled.
Here's an example of calling this property from Kotlin code:
println(EmailAddress.regex) // ^[A-Za-z]+(?:\.[A-Za-z]+)*@(?:[A-Za-z][A-Za-z\d-]{0,61}[A-Za-z\d]\.)*[A-Za-z][A-Za-z\d-]{0,61}[A-Za-z\d]$The Regex type being unavailable on Java, this property is not available for this language.