18 Python Regular Expressions Exercises and Examples


Regular expressions are a powerful tool for working with text data in Python. A regular expression is a sequence of characters that define a search pattern, which can be used for pattern-matching, replacing, or extracting specific information from a text. The re module of Python provides support for regular expressions.

In this article, I have added some simple examples and exercises to demonstrate the use of regular expressions in Python. Check out these examples to get a clear idea of how regular expressions work.

Let’s jump right in.

1. Importing the re module

import re

2. Basic pattern matching using search()

import re

pattern = "Python"
text = "I write code in Python."
match = re.search(pattern, text)
print("Match found:", bool(match))

Output:

3. Using findall() to find all occurrences of a pattern

import re

pattern = "a"
text = "I love to code in Python and it's amazing!"
matches = re.findall(pattern, text)
print("Matches found:", len(matches))

Output:

4. Using split() to split a string based on a pattern

import re

pattern = "\s"
text = "I like Python and it is amazing!"
split_text = re.split(pattern, text)
print("Split text:", split_text)

Output:

5. Using sub() to replace a pattern with a string

import re

pattern = "Python"
replacement = "Java"
text = "Python is fun"
substituted_text = re.sub(pattern, replacement, text)
print("Substituted text:", substituted_text)

Output:

6. Using ^ to match the start of a string

import re

pattern = "^I"
text = "I love Python!"
match = re.search(pattern, text)
print("Match found:", bool(match))

Output:

7. Using $ to match the end of a string

import re

pattern = "Python!$"
text = "Python programming is great!"
match = re.search(pattern, text)
print("Match found:", bool(match))

Output:

8. Using [] to create a character set

import re

pattern = "[Pp]ython"
text = "I write code in python and Python!"
matches = re.findall(pattern, text)
print("Matches found:", len(matches))

Output:

9. Using . to match any character

import re

pattern = "Py...n"
text = "I love Python, Pyt3on, Py45n, and Py@#n!"
matches = re.findall(pattern, text)
print("Matches found:", len(matches))

Output:

10. Using * to match zero or more occurrences of a character

import re

pattern = "Py.*n"
count = 0
text = ["Python coding", "Pyt3on","Java", "Py45n", "Py@#n","Pyn"]
for i in text:
    if(re.findall(pattern, i)):
        count+=1
print("Matches found:", count)

Output:

11. Using + to match one or more occurrences of a character

import re

pattern = "Py.+n"
count = 0
text = ["Python coding", "Pyt3on","Java", "Py45n", "Py@#n","Pyn"]
for i in text:
    if(re.findall(pattern, i)):
        count+=1
print("Matches found:", count)

12. Using ? to match zero or one occurrence of a character

import re

pattern = "Py.?n"
count = 0
text = ["Python coding", "Pyt3on","Java", "Py45n", "Py@#n","Pyn"]
for i in text:
    if(re.findall(pattern, i)):
        count+=1
print("Matches found:", count)

Output:

13. Using {} to specify the number of occurrences of a character

import re

pattern = "Py{1,2}n"
text = "I love Pyn, Pyyn, and Pyyyn!"
matches = re.findall(pattern, text)
print("Matches found:", len(matches))

Output:

14. Using \d to match digits

import re

pattern = "\d+"
text = "My phone number is 123-456-7890."
matches = re.findall(pattern, text)
print(matches)
print("Matches found:", len(matches))

Output:

15. Using \w to match alphanumeric characters

import re

pattern = "\w+"
text = "I_love_Python!"
matches = re.findall(pattern, text)
print(matches)
print("Matches found:", len(matches))

Output:

16. Using \s to match whitespace characters

import re

pattern = "\s+"
text = "I love Python!"
matches = re.findall(pattern, text)
print("Matches found:", len(matches))

Output:

17. Using | as an OR operator

import re

pattern = "Python|Java"
text = "I write code in Python and Java!"
matches = re.findall(pattern, text)
print("Matches found:", len(matches))

Output:

18. Using () to group patterns

import re

pattern = "(\d{3})-(\d{3})-(\d{4})"
text = "My phone number is 123-456-7890."
match = re.search(pattern, text)
if match:
    print("Area code:", match.group(1))
    print("Local exchange:", match.group(2))
    print("Line number:", match.group(3))

Output:

I hope this article was helpful. Check out my post on 15 Python String Manipulation Exercises.

Ashwin Joy

I'm the face behind Pythonista Planet. I learned my first programming language back in 2015. Ever since then, I've been learning programming and immersing myself in technology. On this site, I share everything that I've learned about computer programming.

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent Posts