Sling Academy
Home/Python/Python: 5 ways to check if a string contains a substring

Python: 5 ways to check if a string contains a substring

Last updated: May 25, 2023

This succinct, practical article will walk you through several different ways to check whether a string contains a specific substring in Python. I assume you already have some basic understanding of the programming language, so I won’t waste your time by praising how powerful Python is or talking about its prolonged history. Let’s go straight to the point!

Using the “in” operator

Using in operator is the neatest and most elegant way for the task. It returns True if the substring is found and False otherwise.

Example:

my_string = "League of Legends is a fun game!"

# Using the 'in' operator
if "League of Legends" in my_string:
    print("Substring found!")
else:
    print("Substring not found!")

Output:

Substring found!

Using the str.index() method

The str.index() method returns the index of the first occurrence of the substring in the parent string. However, if the substring is not found, the method will raise a ValueError exception.

Example:

text = "Reddit and Steam are my favorite websites."

try:
    text.index("favorite")
    print("The word 'favorite' exists in the text.")
except ValueError:
    print("The word 'favorite' does not exist in the text.")

Output:

The word 'favorite' exists in the text.

Using the str.find() method

Like the str.index() method, the str.find() method returns the index of the first occurrence of a substring within a string. However, it won’t raise an exception if the substring is not found. Instead, it returns -1.

Example:

text = "CS:GO is one of the best shooting games."

if text.find("CS:GO") != -1:
    print("CS:GO is found")
else:
    print("CS:GO is not found")

Output:

CS:GO is found

Using regular expressions

Regular expressions are a powerful tool for working with strings, and the re module in Python provides powerful tools for working with regular expressions. You can use the re.search() function to search for a pattern (in the context of this article, it is a substring) within a string.

Example:

import re

my_string = "Turtles are cool!"

# Using regular expressions
if re.search("cool", my_string):
    print("Substring found!")
else:
    print("Substring not found!")

Output:

Substring found!

Using the startsWith() and endsWith() methods

This duo can help you check if a given string starts or ends with a specific substring. However, they are useless if the substring is somewhere in a string that is neither the beginning nor the end.

Example:

text = "What we don't know is unlimited."

# Check if the text starts with "What"
if(text.startswith("What")):
    print("Yes, the string starts with 'What'")
else: 
    print("No, the string does not start with 'What'")

# Check if the text ends with "turtles."
if(text.endswith("turtles.")):
    print("Yes, the string ends with 'turtles.'")
else:
    print("No, the string does not end with 'turtles.'")

Output:

Yes, the string starts with 'What'
No, the string does not end with 'turtles.'

Conclusion

We’ve gone over a bunch of solutions to determine whether a string includes a substring or not. This knowledge is useful for tasks like pattern matching, text processing, filtering data, or conditional logic based on specific substrings present within a larger string. The tutorial ends here. I don’t want it to become unnecessary long. Happy coding & enjoy your day!

Next Article: Python: Converting a string to lowercase/uppercase

Previous Article: Python: 5 Ways to Reverse a String

Series: Working with Strings in Python

Python

You May Also Like

  • Introduction to yfinance: Fetching Historical Stock Data in Python
  • Monitoring Volatility and Daily Averages Using cryptocompare
  • Advanced DOM Interactions: XPath and CSS Selectors in Playwright (Python)
  • Automating Strategy Updates and Version Control in freqtrade
  • Setting Up a freqtrade Dashboard for Real-Time Monitoring
  • Deploying freqtrade on a Cloud Server or Docker Environment
  • Optimizing Strategy Parameters with freqtrade’s Hyperopt
  • Risk Management: Setting Stop Loss, Trailing Stops, and ROI in freqtrade
  • Integrating freqtrade with TA-Lib and pandas-ta Indicators
  • Handling Multiple Pairs and Portfolios with freqtrade
  • Using freqtrade’s Backtesting and Hyperopt Modules
  • Developing Custom Trading Strategies for freqtrade
  • Debugging Common freqtrade Errors: Exchange Connectivity and More
  • Configuring freqtrade Bot Settings and Strategy Parameters
  • Installing freqtrade for Automated Crypto Trading in Python
  • Scaling cryptofeed for High-Frequency Trading Environments
  • Building a Real-Time Market Dashboard Using cryptofeed in Python
  • Customizing cryptofeed Callbacks for Advanced Market Insights
  • Integrating cryptofeed into Automated Trading Bots