> For the complete documentation index, see [llms.txt](https://ploegert.gitbook.io/til/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ploegert.gitbook.io/til/programmy/regex.md).

# regEx

<https://cheatography.com/davechild/cheat-sheets/regular-expressions/>

## Anchors <a href="#title_5_160" id="title_5_160"></a>

| ^   | Start of string, or start of line in multi-line pattern |
| --- | ------------------------------------------------------- |
| \A  | Start of string                                         |
| $   | End of string, or end of line in multi-line pattern     |
| \Z  | End of string                                           |
| \b  | Word boundary                                           |
| \B  | Not word boundary                                       |
| \\< | Start of word                                           |
| \\> | End of word                                             |

## Character Classes <a href="#title_5_161" id="title_5_161"></a>

| \c | Control character  |
| -- | ------------------ |
| \s | White space        |
| \S | Not white space    |
| \d | Digit              |
| \D | Not digit          |
| \w | Word               |
| \W | Not word           |
| \x | Hexade­cimal digit |
| \O | Octal digit        |

## POSIX <a href="#title_5_162" id="title_5_162"></a>

| \[:upper:]  | Upper case letters             |
| ----------- | ------------------------------ |
| \[:lower:]  | Lower case letters             |
| \[:alpha:]  | All letters                    |
| \[:alnum:]  | Digits and letters             |
| \[:digit:]  | Digits                         |
| \[:xdigit:] | Hexade­cimal digits            |
| \[:punct:]  | Punctu­ation                   |
| \[:blank:]  | Space and tab                  |
| \[:space:]  | Blank characters               |
| \[:cntrl:]  | Control characters             |
| \[:graph:]  | Printed characters             |
| \[:print:]  | Printed characters and spaces  |
| \[:word:]   | Digits, letters and underscore |

## Assertions <a href="#title_5_163" id="title_5_163"></a>

| ?=          | Lookahead assertion       |
| ----------- | ------------------------- |
| ?!          | Negative lookahead        |
| ?<=         | Lookbehind assertion      |
| ?!= or ?\<! | Negative lookbehind       |
| ?>          | Once-only Subexp­ression  |
| ?()         | Condition \[if then]      |
| ?()\|       | Condition \[if then else] |
| ?#          | Comment                   |

## Quanti­fiers <a href="#title_5_164" id="title_5_164"></a>

| \* | 0 or more | {3}   | Exactly 3 |
| -- | --------- | ----- | --------- |
| +  | 1 or more | {3,}  | 3 or more |
| ?  | 0 or 1    | {3,5} | 3, 4 or 5 |

Add a ? to a quantifier to make it ungreedy.

## Escape Sequences <a href="#title_5_2316" id="title_5_2316"></a>

| \\ | Escape following character |
| -- | -------------------------- |
| \Q | Begin literal sequence     |
| \E | End literal sequence       |

"­Esc­api­ng" is a way of treating characters which have a special meaning in regular expres­sions literally, rather than as special charac­ters.

## Common Metach­ara­cters <a href="#title_5_169" id="title_5_169"></a>

| ^ | \[ | .  | $  |
| - | -- | -- | -- |
| { | \* | (  | \\ |
| + | )  | \| | ?  |
| < | >  |    |    |

The escape character is usually \\

## Special Characters <a href="#title_5_165" id="title_5_165"></a>

| \n   | New line            |
| ---- | ------------------- |
| \r   | Carriage return     |
| \t   | Tab                 |
| \v   | Vertical tab        |
| \f   | Form feed           |
| \xxx | Octal character xxx |
| \xhh | Hex character hh    |

## Groups and Ranges <a href="#title_5_166" id="title_5_166"></a>

| .       | Any character except new line (\n) |
| ------- | ---------------------------------- |
| (a\|b)  | a or b                             |
| (...)   | Group                              |
| (?:...) | Passive (non-c­apt­uring) group    |
| \[abc]  | Range (a or b or c)                |
| \[^abc] | Not (a or b or c)                  |
| \[a-q]  | Lower case letter from a to q      |
| \[A-Q]  | Upper case letter from A to Q      |
| \[0-7]  | Digit from 0 to 7                  |
| \x      | Group/­sub­pattern number "­x"     |

Ranges are inclusive.

## Pattern Modifiers <a href="#title_5_167" id="title_5_167"></a>

| g    | Global match                             |
| ---- | ---------------------------------------- |
| i \* | Case-i­nse­nsitive                       |
| m \* | Multiple lines                           |
| s \* | Treat string as single line              |
| x \* | Allow comments and whitespace in pattern |
| e \* | Evaluate replac­ement                    |
| U \* | Ungreedy pattern                         |

\* PCRE modifier

## String Replac­ement <a href="#title_5_168" id="title_5_168"></a>

| $n  | nth non-pa­ssive group        |
| --- | ----------------------------- |
| $2  | "­xyz­" in /^(abc­(xy­z))$/   |
| $1  | "­xyz­" in /^(?:a­bc)­(xyz)$/ |
| $\` | Before matched string         |
| $'  | After matched string          |
| $+  | Last matched string           |
| $&  | Entire matched string         |

Some regex implem­ent­ations use \ instead of $.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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://ploegert.gitbook.io/til/programmy/regex.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.
