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
in operator is the neatest and most elegant way for the task. It returns
True if the substring is found and
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!")
Using the str.index() method
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
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.")
The word 'favorite' exists in the text.
Using the str.find() method
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.
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")
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.
import re my_string = "Turtles are cool!" # Using regular expressions if re.search("cool", my_string): print("Substring found!") else: print("Substring not 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.
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.'")
Yes, the string starts with 'What' No, the string does not end with 'turtles.'
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!