mirror-chatterino2/docs/Regex.md

45 lines
1.4 KiB
Markdown
Raw Normal View History

_Regular expressions_ (or short _regexes_) are often used to check if a text matches a certain pattern. For example the regex `ab?c` would match `abc` or `ac`, but not `abbc` or `123`. In Chatterino, you can use them to highlight messages (and more) based on complex conditions.
Basic patterns:
|Pattern |Matches|
|-|-|
|`x?` |nothing or `x`|
|`x*` |`x`, repeated any number of times|
|`x+` |`x`, repeated any number of times but at least 1|
|`^` |The start of the text|
|`$` |The end of the text|
|`x\|y` |`x` or `y`|
You can group multiple statements with `()`:
|Pattern |Matches|
|-|-|
|`asd?` |`asd` or `as`|
|`(asd)?` |`asd` or nothing|
|`\(asd\)` |`(asd)`, literally|
You can also group multiple characters with `[]`:
|Pattern |Matches|
|-|-|
|`[xyz]` |`x`, `y` or `z`|
|`[1-5a-f]` |`1`,`2`,`3`,`4`,`5`,`a`,`b`,`c`,`d`,`e`,`f`|
|`[^abc]` |Anything, **except** `a`, `b` and `c`|
|`[\-]` |`-`, literally (escaped with `\`)|
|`\[xyz\]` |`[xyz]`, literally|
Special patterns:
|Pattern |Matches|
|-|-|
|`\d` |Digit characters (0-9)|
|`\D` |Non-digit characters|
|`\w` |Word characters (a-zA-Z0-9_)|
|`\W` |Non-word characters|
|`\s` |Spaces, tabs, etc.|
|`\S` |Not spaces, tabs, etc.|
|`\b` |Word boundaries (between \w and \W)|
|`\B` |Non-word boundaries|
You can try out your regex pattern on websites like [https://regex101.com/](regex101.com).