Here is my cheatsheet that has been very helpful. Obviously, this will not teach you how RegEx works, but is a good quick reference when I forget the exact syntax for something.
RegExp
Character classes
Anchors
For multiline patterns (m flag), ^ and $ will act as start and end of line.
Escaped characters
Groups
Quantifiers
Lookahead & Lookbehind
markdown
# RegExp
## Character classes
| Pattern | Description |
| ------------- | ---------------------------------------- |
| `.` | Any character, except newline |
| `\w` | Word |
| `\d` | Digit |
| `\s` | Whitespace |
| `\W` | Not word |
| `\D` | Not digit |
| `\S` | Not whitespace |
| `[abc]` | Any of a, b, or c |
| `[a-e]` | Characters between `a` and `e` |
| `[1-9]` | Digit between `1` and `9` |
| `[[:print:]]` | Any printable character including spaces |
| `[^abc]` | Any character except `a`, `b` or `c` |
## Anchors
| Pattern | Description |
| ------- | ---------------------- |
| `\G` | Start of match |
| `^` | Start of string \* |
| `$` | End of string \* |
| `\A` | Start of string |
| `\Z` | End of string |
| `\z` | Absolute end of string |
| `\b` | A word boundary |
| `\B` | Non-word boundary |
| `^abc` | Start with `abc` |
| `abc$` | End with `abc` |
For multiline patterns (`m` flag), `^` and `$` will act as start and end of line.
## Escaped characters
| Pattern | Description |
| ---------- | -------------------------------------- |
| `\. \* \\` | Escape special character used by regex |
| `\t` | Tab |
| `\n` | Newline |
| `\r` | Carriage return |
## Groups
| Pattern | Description |
| --------- | -------------------------------------------------------- |
| `(abc)` | Capture group |
| `(a\|b)` | Match `a` or `b` |
| `(?:abc)` | Match `abc`, but don't capture |
| `\1` | Substituted with text matched of the 1st capturing group |
## Quantifiers
| Pattern | Description |
| -------- | --------------------- |
| `a*` | Match 0 or more |
| `a+` | Match 1 or more |
| `a?` | Match 0 or 1 |
| `a{5}` | Match exactly 5 |
| `a{,3}` | Match up to 3 |
| `a{3,}` | Match 3 or more |
| `a{1,3}` | Match between 1 and 3 |
## Lookahead & Lookbehind
| Pattern | Description |
| --- | --- |
| `a(?=b)` | Match `a` in `baby` but not in `bay` |
| `a(?!b)` | Match `a` in `Stan` but not in `Stab` |
| `(?<=a)b` | Match `b` in `crabs` but not in `cribs` |
| `(?<!a)b` | Match `b` in `fib` but not in `fab` |
| `(?<![a-z])abc(?![a-z])` | Match `abc` without any letters before/after |
I think your comment currently has so many downvotes because people dislike seeing people whine about downvotes. As the commenter above mentioned, at the time of your edit, your comment only had one downvote.
You know, it's ugly as all hell, but I have a feeling I'm gonna like it a lot more when I'm high as shit on crack.