How to Use Regex in Python: Simple Guide with Examples
In Python, you use regex by importing the
re module and applying functions like re.search(), re.match(), or re.findall() with a pattern string. Regex patterns let you find, match, or replace text based on rules you define.Syntax
To use regex in Python, first import the re module. Then use functions like re.search(pattern, string) to find a pattern anywhere in the string, re.match(pattern, string) to check if the string starts with the pattern, or re.findall(pattern, string) to get all matches.
The pattern is a string that defines the regex rules, and string is the text you want to search.
python
import re pattern = r"\d+" # matches one or more digits text = "There are 12 apples and 30 bananas." match = re.search(pattern, text) if match: print("Found:", match.group())
Output
Found: 12
Example
This example shows how to find all numbers in a text using re.findall(). It prints each number found.
python
import re text = "My phone numbers are 123-456-7890 and 987-654-3210." pattern = r"\d{3}-\d{3}-\d{4}" numbers = re.findall(pattern, text) for number in numbers: print(number)
Output
123-456-7890
987-654-3210
Common Pitfalls
- Forgetting to use raw strings (prefix
r) for regex patterns can cause errors because backslashes are treated as escape characters. - Using
re.match()when you want to find a pattern anywhere in the string instead of only at the start. - Not checking if a match was found before calling
.group(), which causes errors.
python
import re text = "Hello 123" pattern = "\\d+" # Without raw string, backslash must be doubled # Wrong: no raw string, might cause confusion match = re.search(pattern, text) if match: print("Found:", match.group()) # Correct: use raw string for pattern pattern = r"\d+" match = re.search(pattern, text) if match: print("Found:", match.group())
Output
Found: 123
Found: 123
Quick Reference
Here are some common regex functions and their uses in Python:
| Function | Purpose |
|---|---|
| re.search(pattern, string) | Finds first match anywhere in string |
| re.match(pattern, string) | Checks if string starts with pattern |
| re.findall(pattern, string) | Returns all matches as a list |
| re.sub(pattern, repl, string) | Replaces matches with repl |
| re.compile(pattern) | Prepares regex pattern for reuse |
Key Takeaways
Always import the re module to use regex in Python.
Use raw strings (r"pattern") to write regex patterns safely.
Use re.search() to find a pattern anywhere, re.match() only at start.
Check if a match exists before accessing match.group() to avoid errors.
re.findall() returns all matches as a list for easy processing.