20 min � Intermediate � Prerequisite: JSON

Regular Expressions (Regex)

Text search ka superpower � ek pattern se hazaaron lines mein se matching text mil jaata hai.

Regex (Regular Expressions) ek powerful tool hai jo text mein patterns dhundhta hai. Email validation, phone number extraction, data cleaning � sab jagah regex use hota hai. Ek chhota sa pattern likho aur poore text se matching parts mil jaayenge.

WHY: Regex kyun zaroori hai

Manually text dhundhna boring aur error-prone hai. Regex se ek line mein hazaaron rows mein se specific data nikal sakte ho. Data analysis mein dirty text ko clean karne ke liye regex sabse useful hai.

PATTERN

\d digits, \w word characters, . any character � yeh basic building blocks hain.

QUANTIFIERS

+ one or more, * zero or more, {n} exactly n times � pattern kitni baar match hoga.

FUNCTIONS

findall(), sub(), search(), match() � alag kaam ke alag functions.

HOW: basic regex patterns

Python mein re module use hota hai regex ke liye. Sabse pehle import karo, phir patterns likho.

python
import re

# Find all numbers
text = "Order #1234 placed on 01/01/2026"
numbers = re.findall(r'\d+', text)
print(numbers) # ['1234', '01', '01', '2026']

# Email pattern
email = "Contact: aman@email.com"
match = re.search(r'[\w.]+@[\w.]+', email)
if match:
 print(match.group()) # aman@email.com

# Replace
cleaned = re.sub(r'\d', '*', "Phone: 9876543210")
print(cleaned) # Phone: **********

# Validate
pattern = r'^\d{10}$'
print(bool(re.match(pattern, "9876543210"))) # True
Data analysis tip: Raw text data mein se phone numbers, emails ya IDs nikalne ke liye re.findall() sabse useful hai � ek pattern likho aur saara matching data mil jaayega.
Try it: email extractor aur phone validatorCode edit karke alag patterns try karo
Run Python dabayein

Common regex patterns

Regex mein har character ka ek special meaning hota hai. In patterns ko yaad karo � maximum kaam yehi cover karte hain:

python
import re

text = "Email: test@abc.com, Phone: 9876543210, Date: 01-01-2026"

# \d = digit, \w = word char, . = any char
print(re.findall(r'\d+', text)) # ['9876543210', '01', '01', '2026']
print(re.findall(r'\w+@\w+\.\w+', text)) # ['test@abc.com']

# + = one or more, * = zero or more
print(re.findall(r'\d+', "12 3 456")) # ['12', '3', '456']

# {n} = exactly n times
print(re.findall(r'\d{4}', "2026 123 4567")) # ['2026', '4567']

# [] = character set
print(re.findall(r'[aeiou]', "hello")) # ['e', 'o']

# ^ = start, $ = end
print(bool(re.match(r'^\d+$', "12345"))) # True

WHEN: alag functions ka use

Har function ka apna kaam hai � kuch pehla match dhoondhta hai, kuch saare matches, kuch replace karta hai.

  • re.findall() � Saare matches return karta hai list mein
  • re.search() � Pehla match return karta hai (Match object)
  • re.match() � String ke start se match check karta hai
  • re.sub() � Pattern ko replace karta hai
python
import re

text = "apple banana cherry apple date apple"

# findall - saare matches
print(re.findall(r'apple', text)) # ['apple', 'apple', 'apple']

# search - pehla match
match = re.search(r'banana', text)
if match:
 print(match.group()) # banana
 print(match.start()) # 6

# match - sirf start se check
print(bool(re.match(r'apple', text))) # True
print(bool(re.match(r'banana', text))) # False

# sub - replace
result = re.sub(r'apple', 'mango', text)
print(result) # mango banana cherry mango date mango

WHERE: real-world use cases

Data science aur web scraping mein regex daily use hota hai:

  • User input validate karna (email, phone, password)
  • Logs se error messages extract karna
  • CSV ya text files se structured data nikalna
  • Web pages se URLs, dates ya prices dhundhna
  • Dirty text data ko clean karna

Quick check

Regex pattern likho jo 10-digit Indian phone number match kare.

^ se start aur $ se end define karo. \d{10} se exactly 10 digits match honge.

Common mistakes

  • Raw string (r'...') na use karna � backslash escape ho jaata hai.
  • re.match() sirf start se check karta hai, poora string nahi.
  • Greedy (*, +) vs lazy (*?, +?) ka fark na samajhna.
  • Special characters ko escape karna bhoolna � ., *, ? etc.
Pro tip: Regex test karne ke liye online tools jaise regex101.com use karo � pattern samajhne mein help milta hai.