# REGEX Quick Guide * [Regex 101](https://regex101.com/) : Have sample code generator * `Atom` and `Notepad++` support Regex `Find` / `Replace`. Can use to test regex expression * Javascript : Enclosed within `/.../` * Control characters * `.` : Any Character Except New Line * `\d` : Digit (0-9) * `\D` : Not a Digit * `\w` : Word Character (a-z, A-Z, 0-9, _) * `\W` : Not Word Character * `\s` : Whitespace (space, tab, newline) * `\S` : Not Whitespace * `\b` : Word Boundary * `\B` : Not Word Boundary * `^` : Beginning of a String * `$` : End of a String * Other * `[]` : Matches Characters in brackets * `[^ ]` : Matches Characters NOT in brackets * `|` : Either Or * `( )` : Group * Quantifiers * `*` : 0 or more * `+` : 1 or more * `?` : 0 or One * `{3}` : Exact Number * `{3,4}` : Range of Numbers (Minimum, Maximun) * MetaCharacters (Need to be escaped) * `.[{()\^$|?*+` : Need to be escaped with `\`. * Eg String = `\*` * To form the character list, escape it as shown `\\\*` * Useful regex | regex | Description | Sample javascript | | -------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | /\d(?=\d{4})/g | mask digits and keep remaining 4 digits | '12345678'.replace(/\d(?=\d{4})/g, "*") | | /(\d+)(\d{4})/ | mask digit. Group into group1 (length - 4 digits) and group2 (4-digit) | '12345678'.replace(/(\d+)(\d{4})/, (match, g1, g2) => { return g1.replace(/\d+/, '*'.repeat(g1.length) + g2) }); | | | | |