regular expression
Regular Expression FUll Cheatsheet (For quick look) :)
note: for downloading visit https://buggyprogrammer.com/regular-expression-cheatsheet/
------x-------------------x----------------x------------x----------------x-------------
# -------------- Anchors --------------
^ → Start of string, or start of line in multiline 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 --------
\c → Control character
\s → White space
\S → Not white space
\d → Digit
\D → Not digit
\w → Word
\W → Not word
\x → Hexadecimal digit
\O → Octal digit
# --------- Quantifiers -----------------
* → 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.
# ------- Special Characters -------------
\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 -------------
. → Any character except new line (\n)
(a|b) → a or b
(...) → Group
(?:...) → Passive (non-capturing) 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/subpattern number "x"
Ranges are inclusive.
# ----------- Assertions ---------------
?= → Lookahead assertion
?! → Negative lookahead
?<= → Lookbehind assertion
?!= or ?<! → Negative lookbehind
?> → Once-only Subexpression
?() → Condition [if then]
?()| → Condition [if then else]
?# → Comment
# ------ Pattern Modifiers --------
g → Global match
i* → Case-insensitive
m* → Multiple lines
s* → Treat string as single line
x* → Allow comments and whitespace in pattern
e* → Evaluate replacement
U* → Ungreedy pattern
* → PCRE modifier
# ------ String Replacement ------
$n → nth non-passive group
$2 → "xyz" in /^(abc(xyz))$/
$1 → "xyz" in /^(?:abc)(xyz)$/
$` → Before matched string
$' → After matched string
$+ → Last matched string
$& → Entire matched string
Some regex implementations use \ instead of $
# ---------- Escape Sequences ------------
\ Escape following character
\Q Begin literal sequence
\E End literal sequence
"Escaping" is a way of treating characters which have a special meaning in regular
expressions literally, rather than as special characters.
# --------- Common Metacharacters ---------
^
[
.
$
{
*
(
\
+
)
|
<
>
The escape character is usually \
# ------------ POSIX ----------------
[:upper:] → Upper case letters
[:lower:] → Lower case letters
[:alpha:] → All letters
[:alnum:] → Digits and letters
[:digit:] → Digits
[:xdigit:] → Hexadecimal digits
[:punct:] → Punctuation
[:blank:] → Space and tab
[:space:] → Blank characters
[:cntrl:] → Control characters
[:graph:] → Printed characters
[:print:] → Printed characters and spaces
[:word:] → Digits, letters and underscore