Add regex.md
This commit is contained in:
parent
e36a32f52b
commit
91ebcf22af
112
regex.md
Normal file
112
regex.md
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
# R* Cheatsheet
|
||||||
|
|
||||||
|
## Modifiers
|
||||||
|
|
||||||
|
| Symbol | Description |
|
||||||
|
|--------|-------------------------------|
|
||||||
|
| `g` | Global - search entire string |
|
||||||
|
| `i` | Case-insensitive |
|
||||||
|
| `m` | Multiple lines |
|
||||||
|
| `s` | Treat as single line |
|
||||||
|
| `x` | Allow comments & whitespace |
|
||||||
|
| `e` | Evaluate placement |
|
||||||
|
| `U` | Un-greedy patterns by default |
|
||||||
|
|
||||||
|
## Escape
|
||||||
|
|
||||||
|
| Symbol | Description |
|
||||||
|
|--------|---------------------------|
|
||||||
|
| `?#` | Comment |
|
||||||
|
| `\ ` | Escape special characters |
|
||||||
|
| `\Q` | Begin literal sequence |
|
||||||
|
| `\E` | End literal sequence |
|
||||||
|
|
||||||
|
## Anchors
|
||||||
|
|
||||||
|
| Symbol | Description |
|
||||||
|
|--------|-------------------|
|
||||||
|
| `^` | Start of line |
|
||||||
|
| `$` | End of line |
|
||||||
|
| `\A` | Start of string |
|
||||||
|
| `\Z` | End of string |
|
||||||
|
| `\b` | Word boundary |
|
||||||
|
| `\B` | Not word boundary |
|
||||||
|
| `\<` | Start of word |
|
||||||
|
| `\>` | End of word |
|
||||||
|
|
||||||
|
## Characters
|
||||||
|
|
||||||
|
| Symbol | POSIX | Description |
|
||||||
|
|--------|--------------------------------------|------------------------------------------|
|
||||||
|
| `\c` | `[:cntrl:]` | Control character |
|
||||||
|
| `\S` | | Not a white space |
|
||||||
|
| `\s` | `[:blank:]` `[:space:]` | White space |
|
||||||
|
| | `[:punct:]` | Punctuation |
|
||||||
|
| `.` | `[:print:]` `[:graph:]` | Printed Character, with & without spaces |
|
||||||
|
| `\W` | | Not a letter |
|
||||||
|
| `\w` | `[:alpha:]` `[:upper:]` `[:lower:]` | Letter |
|
||||||
|
| `\D` | | Not a number |
|
||||||
|
| `\d` | `[:digit:]` | Number |
|
||||||
|
| `\x` | `[:xdigit:]` | Hexadecimal digit |
|
||||||
|
| `\O` | | Octal digit |
|
||||||
|
| `\n` | | New line |
|
||||||
|
| `\r` | | Carriage return |
|
||||||
|
| `\t` | | Tab |
|
||||||
|
| `\v` | | Vertical tab |
|
||||||
|
| `\f` | | Form feed |
|
||||||
|
| `\xxx` | | Octal number "xxx" |
|
||||||
|
| `\xaa` | | Hexidecimal "aa" |
|
||||||
|
|
||||||
|
## Repeat
|
||||||
|
|
||||||
|
| Symbol | Range | Description |
|
||||||
|
|----------|-------------|---------------------------------------|
|
||||||
|
| | `{x}` | Exactly `x` times |
|
||||||
|
| | `{min,max}` | Repeat between `min` & `max` times |
|
||||||
|
| `?` | `{,1}` | 0 or 1 |
|
||||||
|
| `*` `*?` | `{0,}` | 0 or many (Adding `?` make un-greedy) |
|
||||||
|
| `+` `+?` | `{1,}` | 1 or more (Adding `?` make un-greedy) |
|
||||||
|
|
||||||
|
Un-greedy repeaters will take the minimum number of characters required
|
||||||
|
|
||||||
|
## Group Selectors
|
||||||
|
|
||||||
|
| Symbol | Description |
|
||||||
|
|----------------|--------------------------------------------|
|
||||||
|
| `.` | Wildcard/Single character (Except newline) |
|
||||||
|
| `(abc\|123)` | `abc` or `123` |
|
||||||
|
| `(...)` | Capture group |
|
||||||
|
| `(?<name>...)` | Named capture group |
|
||||||
|
| `(?:...)` | Group un-captured |
|
||||||
|
| `[abc]` | `A` or `B` or `C` |
|
||||||
|
| `[^abc]` | Not `A` or `B` or `C` |
|
||||||
|
| `[0-9]` | Number between `0` and `9` |
|
||||||
|
| `[a-g]` | Lowercase letter between `a` and `g` |
|
||||||
|
| `[A-G]` | Uppercase letter between `A` and `G` |
|
||||||
|
|
||||||
|
All selectors are inclusive
|
||||||
|
|
||||||
|
## Reference Group
|
||||||
|
|
||||||
|
| Symbol | Description |
|
||||||
|
|---------|----------------|
|
||||||
|
| `$n` | N'th Group |
|
||||||
|
| `$\` ` | Before matched |
|
||||||
|
| `$'` | After matched |
|
||||||
|
| `$+` | Last match |
|
||||||
|
| `$&` | Entire match |
|
||||||
|
|
||||||
|
Some regex implementations use \ instead of $.
|
||||||
|
|
||||||
|
## Assertions
|
||||||
|
|
||||||
|
| Symbol | Description |
|
||||||
|
|--------------|-------------------------|
|
||||||
|
| `?=` | Lookahead |
|
||||||
|
| `?!` | Negative lookahead |
|
||||||
|
| `?<=` | Lookbehind |
|
||||||
|
| `?!=` `?<!` | Negative lookbehind |
|
||||||
|
| `?>` | Once-only subexpression |
|
||||||
|
| `?(...)` | If condition |
|
||||||
|
| `?(...) \| ` | If-else condition |
|
||||||
|
|
Loading…
Reference in New Issue
Block a user