Working with Search and Match Objects

Tutorial 3 of 5

1. Introduction

Goal of The Tutorial

In this tutorial, we will delve into the 'search' and 'match' functions in Python's 're' module. Our goal is to understand how to find patterns in a string using regular expressions and work with the Match objects that these functions return.

Learning Outcomes

By the end of this tutorial, you should be able to:
- Use the 'search' and 'match' functions effectively.
- Understand the difference between 'search' and 'match'.
- Work with Match objects and access their properties.

Prerequisites

This tutorial assumes that you have basic knowledge of Python. Familiarity with regular expressions would be beneficial, but not mandatory.

2. Step-by-Step Guide

Understanding 'search' and 'match'

The 're' module in Python provides functions to work with Regular Expressions. 'search' and 'match' are two such functions.

The 'search' function searches the string for a match to the regex pattern and returns a Match object if found. It searches the entire string until it finds a match.

The 'match' function, on the other hand, checks if the string starts with a match to the regex pattern. It returns a Match object if found, else None.

Working with Match objects

When a match is found, 'search' and 'match' return a Match object. This object contains information about the match, including the original input string, the regular expression used, and the location of the match. You can use methods like group(), start(), end(), and span() on a Match object to get these details.

3. Code Examples

Using 'search' Function

Let's start with an example of using the 'search' function.

import re

text = "Hello, welcome to the world of Python!"
pattern = "welcome"

match = re.search(pattern, text)

if match:
  print("Match found:", match.group())
else:
  print("No match found.")

In the above code:
- We import the 're' module.
- We define our text and the pattern we want to search.
- We call 're.search()' with our pattern and text. It returns a Match object if the pattern is found, else None.
- Using an 'if' statement, we check if a match was found.
- If a match was found, we print it using 'match.group()'. This method returns the part of the string where there was a match.

The expected output of the above code is:

Match found: welcome

Using 'match' Function

Now, let's see an example of the 'match' function.

import re

text = "Python is awesome."
pattern = "Python"

match = re.match(pattern, text)

if match:
  print("Match found:", match.group())
else:
  print("No match found.")

In the above code:
- We define our text and the pattern we want to match.
- We call 're.match()' with our pattern and text. It checks if the string starts with the pattern.
- If a match is found at the start of the string, it returns a Match object, else None.
- We then print the match if found.

The expected output of the above code is:

Match found: Python

4. Summary

In this tutorial, we learned about the 'search' and 'match' functions in Python's 're' module. We understood the difference between them and how to use them. We also learned about Match objects and how to extract information from them.

For further learning, you could explore other functions in the 're' module like 'findall', 'sub', and 'split'. Additionally, you could delve deeper into regular expressions and their syntax.

5. Practice Exercises

Here are some exercises to test your understanding:

  1. Write a program that checks if a string starts with "Hello".
  2. Write a program that searches for the word "Python" in a string.
  3. Write a program that finds all occurrences of a word in a string using 're.findall()'.

Happy coding! Practice is key to mastering any concept.