Hey! If you love Python and building Python apps as much as I do, let's connect on Twitter or LinkedIn. I talk about this stuff all the time!

How to Check if a String Contains a Substring in Python

Learn how to use the in operator, string slicing, and regular expressions to check if a substring is present within a given string in Python. …


Updated May 25, 2023

Learn how to use the in operator, string slicing, and regular expressions to check if a substring is present within a given string in Python.

Definition of the Concept

In computer programming, strings are sequences of characters that can be used to store and manipulate text data. Checking if a string contains a substring is a common operation that involves verifying whether one string (the “substring”) exists within another string (the original string). This concept is essential in various programming tasks, such as validating user input, searching for patterns in text data, or implementing search functionality.

Step-by-Step Explanation

To check if a string contains a substring in Python, you can use the following methods:

1. Using the in Operator

The most straightforward way to achieve this is by utilizing the in operator, which checks if a value exists within a sequence (such as a list or a string). Here’s an example code snippet:

original_string = "Hello, World!"
substring_to_search = "World"

if substring_to_search in original_string:
    print(f"Found '{substring_to_search}' in the original string!")
else:
    print(f"'{substring_to_search}' not found in the original string.")

Code Explanation:

  • We assign a string value to original_string and another string value to substring_to_search.
  • The in operator is used to check if substring_to_search exists within original_string. If it does, the code inside the if statement executes.
  • The print() function displays a message indicating whether the substring was found or not.

2. String Slicing

Another way to achieve this is by using string slicing (the slicing method), which allows you to extract a subset of characters from a string. However, this approach can be less efficient than using the in operator, especially for longer strings.

original_string = "Hello, World!"
substring_to_search = "World"

if substring_to_search in original_string:
    print(f"Found '{substring_to_search}' in the original string!")
else:
    print(f"'{substring_to_search}' not found in the original string.")

Code Explanation:

  • We use a similar approach to the previous example, but with an added complexity of using string slicing.
  • The in operator still checks for substring existence within the original string.

3. Regular Expressions

Regular expressions (regex) are powerful tools for pattern matching in strings. However, using regex can be overkill for simple substring searches and may introduce unnecessary complexity to your code.

import re

original_string = "Hello, World!"
substring_to_search = "World"

if re.search(r'\b' + re.escape(substring_to_search) + r'\b', original_string):
    print(f"Found '{substring_to_search}' in the original string!")
else:
    print(f"'{substring_to_search}' not found in the original string.")

Code Explanation:

  • We import the re module, which provides support for regular expressions.
  • The re.search() function searches for a pattern (in this case, our substring) within the original string.
  • We use regex metacharacters to ensure that we’re searching for an exact match of the substring.

Summary

Checking if a string contains a substring in Python can be achieved using various methods:

  1. The in operator: A simple and efficient approach suitable for most cases.
  2. String slicing: Less efficient than the in operator but still useful in specific situations.
  3. Regular expressions: Overkill for simple substring searches, but powerful for more complex pattern matching.

When choosing a method, consider your specific use case, performance requirements, and personal preference for simplicity or complexity.

Stay up to date on the latest in Python, AI, and Data Science

Intuit Mailchimp