mirror of
https://github.com/CorentinTh/it-tools.git
synced 2025-05-04 05:19:12 -04:00

* feat(new tool): Regex Tester Fix https://github.com/CorentinTh/it-tools/issues/1007, https://github.com/CorentinTh/it-tools/issues/991, https://github.com/CorentinTh/it-tools/issues/936, https://github.com/CorentinTh/it-tools/issues/761, https://github.com/CorentinTh/it-tools/issues/649 https://github.com/CorentinTh/it-tools/issues/644, https://github.com/CorentinTh/it-tools/issues/554 https://github.com/CorentinTh/it-tools/issues/308 * fix: refactor to service + add regex diagram + ui enhancements * fix: update queryParams * fix: deps * fix: svg style bug in @regexper/render @regexper/render use a stylesheet in svg that cause bugs in whole site. So add regexper in a shadow root * feat(new tool): added Regex Cheatsheet * Update src/tools/regex-memo/index.ts * Update src/tools/regex-tester/index.ts --------- Co-authored-by: Corentin THOMASSET <corentin.thomasset74@gmail.com>
3.2 KiB
3.2 KiB
Normal characters
Expression | Description |
---|---|
. or [^\n\r] |
any character excluding a newline or carriage return |
[A-Za-z] |
alphabet |
[a-z] |
lowercase alphabet |
[A-Z] |
uppercase alphabet |
\d or [0-9] |
digit |
\D or [^0-9] |
non-digit |
_ |
underscore |
\w or [A-Za-z0-9_] |
alphabet, digit or underscore |
\W or [^A-Za-z0-9_] |
inverse of \w |
\S |
inverse of \s |
Whitespace characters
Expression | Description |
---|---|
|
space |
\t |
tab |
\n |
newline |
\r |
carriage return |
\s |
space, tab, newline or carriage return |
Character set
Expression | Description |
---|---|
[xyz] |
either x , y or z |
[^xyz] |
neither x , y nor z |
[1-3] |
either 1 , 2 or 3 |
[^1-3] |
neither 1 , 2 nor 3 |
- Think of a character set as an
OR
operation on the single characters that are enclosed between the square brackets. - Use
^
after the opening[
to “negate” the character set. - Within a character set,
.
means a literal period.
Characters that require escaping
Outside a character set
Expression | Description |
---|---|
\. |
period |
\^ |
caret |
\$ |
dollar sign |
| |
pipe |
\\ |
back slash |
\/ |
forward slash |
\( |
opening bracket |
\) |
closing bracket |
\[ |
opening square bracket |
\] |
closing square bracket |
\{ |
opening curly bracket |
\} |
closing curly bracket |
Inside a character set
Expression | Description |
---|---|
\\ |
back slash |
\] |
closing square bracket |
- A
^
must be escaped only if it occurs immediately after the opening[
of the character set. - A
-
must be escaped only if it occurs between two alphabets or two digits.
Quantifiers
Expression | Description |
---|---|
{2} |
exactly 2 |
{2,} |
at least 2 |
{2,7} |
at least 2 but no more than 7 |
* |
0 or more |
+ |
1 or more |
? |
exactly 0 or 1 |
- The quantifier goes after the expression to be quantified.
Boundaries
Expression | Description |
---|---|
^ |
start of string |
$ |
end of string |
\b |
word boundary |
- How word boundary matching works:
- At the beginning of the string if the first character is
\w
. - Between two adjacent characters within the string, if the first character is
\w
and the second character is\W
. - At the end of the string if the last character is
\w
.
- At the beginning of the string if the first character is
Matching
Expression | Description |
---|---|
foo|bar |
match either foo or bar |
foo(?=bar) |
match foo if it’s before bar |
foo(?!bar) |
match foo if it’s not before bar |
(?<=bar)foo |
match foo if it’s after bar |
(?<!bar)foo |
match foo if it’s not after bar |
Grouping and capturing
Expression | Description |
---|---|
(foo) |
capturing group; match and capture foo |
(?:foo) |
non-capturing group; match foo but without capturing foo |
(foo)bar\1 |
\1 is a backreference to the 1st capturing group; match foobarfoo |
- Capturing groups are only relevant in the following methods:
string.match(regexp)
string.matchAll(regexp)
string.replace(regexp, callback)
\N
is a backreference to theNth
capturing group. Capturing groups are numbered starting from 1.