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
| 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 |
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 remember before the Steam Deck was released, and people were discussing all the potential capabilities of the upcoming device, it was often asked if this might be a feature. Of course, there were the usual "It's a PC, so yes" answers, but the more accurate answers along the lines of "If it's not, someone will make it work" are finally coming true now.
That is an example of a basic Bootstrap button
https://getbootstrap.com/docs/4.0/components/buttons/