# Regular Expressions Cheat Sheet

#### Anchors

* `^`: start of the string or the start of a line in a multiline pattern
* `$`: end of the string or the end of a line in a multiline pattern
* `\b`: word boundary
* `\B`: not word boundary (opposite of `\b`)

Note: Anchors are non-quantifiable (i.e. cannot be followed by a quantifier).

#### Character sequences

* `.`: any character except line breaks
* `\w`: any word character
* `\W`: any non-word character (opposite of `\w`)
* `\s`: any whitespace character
* `\S`: any non-whitespace character (opposite of `\s`)
* `\d`: any digit character
* `\D`: any non-digit character (opposite of `\d`)
* `[abc]`: a single character in the given set (here `a`, `b` or `c`)
* `[^abc]`: a single character not in the given set (opposite of `[abc]`)
* `[a-z]`: a single character in the given range (here between `a` and `z` inclusive)
* `[^a-z]`: a single character not in the given range (opposite of `[a-z]`)
* `[a-zA-Z]`: a single character in either of the given ranges

Note: Use `\` to escape special characters (e.g. `\`, `/`, `[`, `]`, `(`, `)`, `{`, `}` etc.).

#### Quantifiers

* `a?`: zero or one of `a` (equal to `a{0,1}`)
* `a*`: zero or more of `a` (equal to `a{0,}`)
* `a+`: one or more of `a` (equal to `a{1,}`)
* `a{3}`: exactly 3 of `a`
* `a{3,}`: 3 or more of `a`
* `a{3,5}`: between 3 and 5 of `a` (inclusive)

Note: `a` is any valid quantifiable expression.

#### Groups

* `(ab)`: match and capture everything enclosed (here exactly `ab`)
* `(a|b)`: match and capture either one character (here `a` or `b`)
* `(?:ab)`: match everything enclosed, without capturing

#### Flags

* `g`: Global
* `m`: Multiline
* `i`: Case insensitive
* `u`: Unicode

Note that this cheatsheet is meant only as a starting point and is by no means a complete guide to all the features and nuances of regular expressions. You can also read 6 JavaScript Regular Expression features you can use today for a deeper dive into some more advanced features.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bryan-guner.gitbook.io/my-docs/cheat-sheets/readme/regular-expressions-cheat-sheet.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
