Regex Cheatsheet 101
Are you tired of trying to make sense of regex? Don't worry, you're not alone! Regex is like a secret language that only a select few seem to understand.
We've got you covered with our Regex Cheatsheet 101!
NOTE: This blog is visually unappealing due to the formatting of dev so I am also linking my blog where it looks better.
Anchors
-
^: Start of string or line. Think of it as a hat for your text. It marks the beginning of a line. -
\A: Start of string. A fancier hat that marks the beginning of a string. -
$: End of string or line. The opposite of^, it marks the end of a line. -
\Z: End of string. The fancier cousin of$that marks the end of a string. -
\b: Word boundary. It's like a little force field around a word that tells you where it begins and ends. -
\B: Not word boundary. The opposite of\b. -
\<: Start of word. Similar to^and\A, but specifically for words. -
\>: End of word. The opposite of\<.
Character Classes
-
\c: Control character. A character that controls your text. Watch out, it's in charge! -
\s: Whitespace. Spaces, tabs, and other invisible characters that make your text look nice and neat. -
\S: Not whitespace. Anything that's not a space, tab, or other invisible character. -
\d: Digit. The numbers 0-9. -
\D: Not digit. Anything that's not a number. -
\w: Word. Letters, numbers, and underscores. -
\W: Not word. Anything that's not a letter, number, or underscore. -
\x: Hexadecimal digit. A fancy name for numbers and letters (A-F, a-f) that are used in hex code. -
\O: Octal digit. Numbers in base 8. Fun fact: octopuses are also good with digits!
Quantifiers
-
*: 0 or more. Like a buffet that you can go back to as many times as you want. -
+: 1 or more. Like a VIP lounge that only lets in the cool kids who have something to offer. -
?: 0 or 1 (optional). Like a checkbox that you can check or leave empty. -
{3}: Exactly 3. The perfect number of times to do something. -
{3,}: 3 or more. Like a marathon that never seems to end. -
{2,5}: 2, 3, 4 or 5. Like a multiple-choice question with several correct answers.
Special Characters
-
\n: New line. The line break that you use when you want to start a new paragraph. -
\r: Carriage return. A fancy name for the Enter key. -
\t: Tab. The button that you press when you want to indent your text. -
\v: Vertical tab. A rarely used character that you probably won't need to worry about. -
\f: Form feed. A character that's mostly used in old printers. Don't worry about it.
Assertions
-
?=: Lookahead assertion. Like a crystal ball that tells you what's coming up next in your text. -
?!: Negative lookahead. The opposite of?=. It tells you what's not coming up next in your text. -
?<=: Lookbehind assertion. Like a time machine that takes you back to the beginning of a word or phrase. -
?<!: Negative lookbehind. The opposite of?<=. It tells you what's not behind you in your text.
Groups and Capture
-
(): Group. A way to group parts of your regex together. -
(?:): Non-capturing group. Like a regular group, but it doesn't create a capture group. -
\n: Backreference. A way to reference a previous capture group. -
(?P<name>): Named capture group. A way to give a capture group a name.
Alternation
-
|: Alternation. A way to match one thing or another. It's like a fork in the road. -
[]: Character set. A way to match one character out of a set of characters. -
[^]: Negated character set. The opposite of[]. Matches anything not in the set.
Flags
-
i: Case-insensitive. Matches both upper and lowercase letters. -
m: Multiline. Allows^and$to match the beginning and end of lines. -
s: Dot-all. Allows.to match newline characters. -
x: Verbose. Allows you to write your regex in multiple lines and add comments.
Family Friendly Examples
- Match the first word of a sentence:
^\w+
- Match the whole text except for the last line:
^.*\n.*\n.*$
- Find all the words that contain the letter "z":
\b\w*z\w*\b
- Find all the words that do not contain the letter "e":
\b[^e\s]+\b
- Match any line that starts with a digit:
^\d.*$
- Match any line that ends with a punctuation mark:
^.*\p{P}$
- Find all the phone numbers in a text:
(\d{3})-(\d{3})-(\d{4})
- Find all the email addresses in a text:
\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b
- Match any line that starts with the word "Lorem":
^\bLorem\b.*$
- Match any line that ends with a three-digit number:
^.*\b\d{3}$
- Match any line that contains the word "regex" and the word "cheat":
^(?=.*regex)(?=.*cheat).*$
- Match any line that does not contain the word "Python":
^(?!.*Python).*$
- Match any line that starts and ends with the same word:
^\b(\w+)\b.*\b\1\b$
- Match any line that has more than 10 characters:
^.{11,}$
- Match any line that has exactly 3 digits:
^.*\b\d{3}\b.*$
- Match any line that has a word with 2 or more consecutive vowels:
^.*\b[aeiou]{2}\w*\b.*$
- Match any line that has a word with at least 3 consonants in a row:
^.*\b[^aeiou]{3}\w*\b.*$
- Match any line that has a word that starts with "c" and ends with "t":
^.*\bc\w*t\b.*$
Top comments (2)
Best regex cheatsheet I ever used:
ChatGPT generated title๐๐ I know because I tried it for generating titles for my blogs :)