Regex

Python - A Quick Start for existing Programers

1 min read

Published Sep 16 2025, updated Sep 30 2025


21
0
0
0

Python

Python implements Regex using the re module, imported like this:

import re

The key functions are:

  • re.search(pattern, string) → Finds the first match anywhere in the string.
  • re.match(pattern, string) → Matches only at the beginning of the string.
  • re.fullmatch(pattern, string) → The entire string must match.
  • re.findall(pattern, string) → Returns all matches as a list.
  • re.finditer(pattern, string) → Returns an iterator of match objects.
  • re.sub(pattern, repl, string) → Replaces matches with repl.
  • re.split(pattern, string) → Splits string by the pattern.
  • re.compile(pattern) → Pre-compiles a regex for reuse.


Examples:

import re

text = "Python 3.12 is released in 2023!"

# Search
match = re.search(r"\d+\.\d+", text)
print("Search:", match.group() if match else None)
# -> "3.12"

# Match (start only)
print("Match:", re.match(r"Python", text))
# -> Match object (at start)

# Fullmatch
print("Fullmatch:", re.fullmatch(r".+", text) is not None)
# -> True (entire string matches ".+")

# Findall
print("Findall digits:", re.findall(r"\d+", text))
# -> ['3', '12', '2023']

# Finditer
for m in re.finditer(r"\d+", text):
    print("Finditer:", m.group(), "at", m.span())
# -> 3 at (7, 8)
# -> 12 at (8, 10)
# -> 2023 at (24, 28)

# Substitution
print("Sub:", re.sub(r"\d+", "#", text))
# -> "Python #.# is released in #!"

# Split
print("Split:", re.split(r"\s+", text))
# -> ['Python', '3.12', 'is', 'released', 'in', '2023!']

# Compile for reuse
pattern = re.compile(r"\d+")
print("Compile Findall:", pattern.findall(text))
# -> ['3', '12', '2023']



# Example text
text = '''
Emails: alice@example.com, bob.smith99@test.co.uk, not-an-email@bad, "quoted string"
Passwords: Passw0rd!, weakpass, Strong#123, NoSpecialChar1
Quotes: She said "Hello World", then "Regex is fun!" and finally "1234"
'''

# Find all email addresses
emails = re.findall(r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}", text)
print("Emails:", emails)
# -> ['alice@example.com', 'bob.smith99@test.co.uk']

# Extract everything inside double quotes
quotes = re.findall(r'"(.*?)"', text)
print("Quoted strings:", quotes)
# -> ['quoted string', 'Hello World', 'Regex is fun!', '1234']

# Validate strong password
# Must contain: ≥8 chars, 1 uppercase, 1 lowercase, 1 digit, 1 special char
password_pattern = re.compile(
    r'^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$'
)

test_passwords = ["Passw0rd!", "weakpass", "Strong#123", "NoSpecialChar1"]
for pwd in test_passwords:
    print(f"{pwd:15} ->", bool(password_pattern.fullmatch(pwd)))
# -> Passw0rd! -> True
# -> weakpass -> False
# -> Strong#123 -> True
# -> NoSpecialChar1 -> False

# Find all numbers (integer or decimal)
numbers = re.findall(r"\d+(?:\.\d+)?", text)
print("Numbers:", numbers)
# -> ['99', '0', '1234']

# Extract all words starting with capital letters
capitals = re.findall(r"\b[A-Z][a-zA-Z]+\b", text)
print("Capitalized words:", capitals)
# -> ['Emails', 'Passwords', 'Quotes', 'She', 'Hello', 'World', 'Regex']

# Split text into sentences (simple case)
sentences = re.split(r"[.!?]\s+", text.strip())
print("Sentences:", sentences)
# -> ['Emails: alice@example.com, bob.smith99@test.co.uk, not-an-email@bad, "quoted string"',
# 'Passwords: Passw0rd!, weakpass, Strong#123, NoSpecialChar1',
# 'Quotes: She said "Hello World", then "Regex is fun!" and finally "1234"']



text = """
Contact: alice@example.com, bob99@test.co.uk
Dates: 2025-09-25, 25/09/2025, 09-25-2025
Hashtags: #Python #Regex #AI
Mentions: @alice @bob_smith
HTML: <div class="content">Hello</div>
IPv4: 192.168.1.1, 10.0.0.255, not.an.ip
URLs: https://example.com, http://test.org/page?id=5
"""

# Email addresses
emails = re.findall(r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}", text)
print("Emails:", emails)
# -> ['alice@example.com', 'bob99@test.co.uk']

# Dates (YYYY-MM-DD or DD/MM/YYYY or MM-DD-YYYY)
dates = re.findall(r"\b(?:\d{4}-\d{2}-\d{2}|\d{2}[/-]\d{2}[/-]\d{4})\b", text)
print("Dates:", dates)
# -> ['2025-09-25', '25/09/2025', '09-25-2025']

# Hashtags
hashtags = re.findall(r"#\w+", text)
print("Hashtags:", hashtags)
# -> ['#Python', '#Regex', '#AI']

# Mentions (@username)
mentions = re.findall(r"@\w+", text)
print("Mentions:", mentions)
# -> ['@alice', '@bob_smith']

# HTML tags
tags = re.findall(r"<[^>]+>", text)
print("HTML Tags:", tags)
# -> ['<div class="content">', '</div>']

# IPv4 addresses
ips = re.findall(r"\b(?:\d{1,3}\.){3}\d{1,3}\b", text)
print("IP Addresses:", ips)
# -> ['192.168.1.1', '10.0.0.255']

# URLs (http/https)
urls = re.findall(r"https?://[^\s]+", text)
print("URLs:", urls)
# -> ['https://example.com,', 'http://test.org/page?id=5']

Products from our shop

Docker Cheat Sheet - Print at Home Designs

Docker Cheat Sheet - Print at Home Designs

Docker Cheat Sheet Mouse Mat

Docker Cheat Sheet Mouse Mat

Docker Cheat Sheet Travel Mug

Docker Cheat Sheet Travel Mug

Docker Cheat Sheet Mug

Docker Cheat Sheet Mug

Vim Cheat Sheet - Print at Home Designs

Vim Cheat Sheet - Print at Home Designs

Vim Cheat Sheet Mouse Mat

Vim Cheat Sheet Mouse Mat

Vim Cheat Sheet Travel Mug

Vim Cheat Sheet Travel Mug

Vim Cheat Sheet Mug

Vim Cheat Sheet Mug

SimpleSteps.guide branded Travel Mug

SimpleSteps.guide branded Travel Mug

Developer Excuse Javascript - Travel Mug

Developer Excuse Javascript - Travel Mug

Developer Excuse Javascript Embroidered T-Shirt - Dark

Developer Excuse Javascript Embroidered T-Shirt - Dark

Developer Excuse Javascript Embroidered T-Shirt - Light

Developer Excuse Javascript Embroidered T-Shirt - Light

Developer Excuse Javascript Mug - White

Developer Excuse Javascript Mug - White

Developer Excuse Javascript Mug - Black

Developer Excuse Javascript Mug - Black

SimpleSteps.guide branded stainless steel water bottle

SimpleSteps.guide branded stainless steel water bottle

Developer Excuse Javascript Hoodie - Light

Developer Excuse Javascript Hoodie - Light

Developer Excuse Javascript Hoodie - Dark

Developer Excuse Javascript Hoodie - Dark

© 2025 SimpleSteps.guide
AboutFAQPoliciesContact