Please correct my English.

The lemming formerly known as:

  • 1 Post
  • 36 Comments
Joined 7 months ago
cake
Cake day: December 31st, 2024

help-circle




  • 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
    Raw 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 |