weight: -1
authors:
- github: rizqyhi
-updated: 2019-03-24
+ - github: izzergh
+ - github: kolapsys
+ - github: samtrion
+updated: 2020-03-10
description: |
Basic cheatsheets for regular expression
---
-##
-
+## RegExp
{: .-three-column}
### 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` |
+| 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 |
-| ------- | ---------------- |
-| `^abc` | Start with `abc` |
-| `abc$` | End with `abc` |
+| 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 boundry |
+| `\B` | Non-word boundry |
+| `^abc` | Start with `abc` |
+| `abc$` | End with `abc` |
### Escaped characters
### Groups
-| Pattern | Description |
-| ------- | ------------- |
-| `(abc)` | Capture group |
+| Pattern | Description |
+| --------- | ------------------------------------------------------- |
+| `(abc)` | Capture group |
+| `(a|b)` | Match `a` or `b` |
+| `(?:abc)` | Match `abc`, but don't capture |
+| `\1` | Subsituted with text matched of the 1st capturing group |
+
### Quantifiers
| `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` |