Python Regular Expressions (RegEx) Made Easy

← Back to Home


What is RegEx?

RegEx (Regular Expression) is a powerful tool used to search, match, and manipulate strings using patterns.

Think of RegEx as a special search language. Instead of just checking if a string contains "hello", you can check if it contains a valid email, a phone number, or even specific word patterns.

Python provides support for RegEx using the re module.



Getting Started: Importing the re Module

import re

This gives you access to RegEx functions like search, match, findall, and sub.



Basic RegEx Functions in Python

Function Description
re.match() Checks for a match at the beginning
re.search() Searches the entire string
re.findall() Returns all matches as a list
re.sub() Replaces pattern matches with a string


📌 Common RegEx Patterns (Cheat Sheet)


Pattern Meaning Example Match
. Any character except newline     a.cabc, axc
^ Start of string     ^Hello
$ End of string     world$
* 0 or more repetitions     lo*looo
+ 1 or more repetitions     lo+loo
? 0 or 1 occurrence     colou?rcolor, colour
{n} Exactly n times     a{3}aaa
[abc] Any one of a, b, or c     b
\d Any digit (0–9)     1, 7, 0
\w Any alphanumeric character     a, 1, _
\s Any whitespace         space, tab, newline


Practical Examples


1. Check if a string starts with a word

import re

text = "Python is awesome"
result = re.match(r"Python", text)
print(bool(result))  # True


2. Find all digits in a string

text = "My number is 123-456-7890"
digits = re.findall(r"\d+", text)
print(digits)  # ['123', '456', '7890']


3. Extract email addresses

text = "Contact us at support@example.com or info@domain.org"
emails = re.findall(r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}", text)
print(emails)  # ['support@example.com', 'info@domain.org']


4. Replace all whitespace with hyphens

text = "This is a test"
new_text = re.sub(r"\s", "-", text)
print(new_text)  # This-is-a-test


5. Validate if a string is a phone number

phone = "123-456-7890"
pattern = r"^\d{3}-\d{3}-\d{4}$"
print(bool(re.match(pattern, phone)))  # True


When to Use RegEx


  • Validating inputs (email, phone numbers, usernames)
  • Extracting specific data from text
  • Text replacements and cleanups
  • Searching large text files or logs


Tips for Using RegEx Safely


  • Test your patterns on small examples first.
  • Use raw strings r"pattern" in Python to avoid escaping backslashes.
  • Use online tools like regex101.com to test and explain patterns.


Final Thoughts

Regular expressions may seem tricky at first, but they’re an essential skill for any Python developer dealing with text, data validation, or web scraping. With practice, RegEx becomes a superpower that makes our code more efficient and capable.