JP
/
EN

Regex: List of Metacharacters

Positional

Metacharacter Description
^ Beginning of line
$ End of line
\A Beginning of string
\z End of string
\Z End of string (excluding line endings)
\b Word boundaries
\B Non-word boundaries
  • The ^ and $ are used as “beginning and end of line” but this is the case in multiline mode (usually this is the default). In single-line mode, it is the beginning or end of the entire string.

Special characters

Metacharacter Description
\ Escape
\t Tab
\n Newline (CR)
\r Newline (LF)
\f New page
\d Digits
\D Non-digits
\s Whitespace (space, tab, neewline and new page)
\S Non-whitespace
\w Word (alphanumeric characters plus ”_“)
\W Non-word

Wildcards and repetition (quantity specifiers)

Default Lazy Greedy Description
. Any one character (excluding line feed code)
* *? *+ 0 or more occurrences of the preceding item
+ +? ++ 1 or more occurrences of the preceding item
? ?? ?+ 0 or 1 occurrences of the preceding item
{n} {n}? {n}+ n occurrences of the preceding item
{n,} {n,}? {n,}+ n or more occurrences of the preceding item
{n,m} {n,m}? {n,m}+ n or more and not more than m occurrences of the preceding item

Default

Match the longest part that matches the condition. Preference is given to matching the entire pattern.

Lazy

Match the shortest part that matches the condition.

Greedy

Match the longest part that matches the condition. No preference is given to matching the entire pattern.

e.g. abcXdefX

Regex Result
Default ^.*X abcXdefX
Lazy ^.*?X abcX
Greedy ^.*+X Not match.*
Greedy ^.*+ abcXdefX

(*) ^.*+ matches all “abcXdefX”, so the last X does not match.

Select from candidates

Metacharacter Description
() Blocking
| Or (strings)
[] Or (one character)

e.g. |

Metacharacter Description
abc|mno|xyz Simple
abc, mno, or xyz
abc.*X|m+o|xy?z Include metachar in candidates
abcXXX, mXo, xz, etc.
(abc|mno|xyz)X Combine with other strings
abcX, mnoX, or xyzX
(abc|mno|xyz)* Combine with quantity specifiers
abcabc, mnoabcxyz, etc.

e.g. []

Metacharacter Description
[abc] Simple (a, b, or c)
[^abc] Negation (Other than a, b, c)
[a-z] Range (lowercase)
[A-Z] Range (uppercase)
[0-9] Range (digits)
[a-zA-Z] Or (a to z or A to Z)
[a-z&&[d-f]] And (a to z and d to f)
[a-z&&[^d-f]] Subtraction (a to z excluding d to f)

Lookahead and Lookbehind

Meta Description e.g. Description
?= Positive lookahead foo(?=bar) Matches “foo” followed by “bar”.
?! Negative lookahead foo(?!bar) Matches “foo” not followed by “bar”.
?<= Positive lookbehind (?<=bar)foo Matches “foo” preceded by “bar”.
?<! Negative lookbehind (?<!bar)foo Matches “foo” not preceded by “bar”.
Hirota Yano / Japan / Programmer
I am publishing a web tool I created as a hobby. It is free of charge, so please feel free to use it.
© Hirota Yano