Python Program to Find Substring in a String

Finding a substring within a string is a fundamental task in Python programming. Python offers various methods to locate, validate, and manipulate substrings within strings efficiently. Below is a step-by-step guide and a Python program to find a substring in a string.


Understanding the Task

The goal is to determine whether a substring exists in a string, find its position, count its occurrences, or extract it. Let’s walk through some practical approaches to achieve this.


Program Explanation

We will demonstrate multiple methods to find a substring in a string. These include using:

  1. The in operator
  2. The find() method
  3. The index() method
  4. The count() method
  5. Regular Expressions (advanced use cases)

Python Program

1. Using the in Operator

The in operator checks if a substring is present in the string. It is simple and efficient.

# Using the in operator
def find_substring(main_string, substring):
    if substring in main_string:
        return f"'{substring}' is found in '{main_string}'"
    else:
        return f"'{substring}' is not found in '{main_string}'"

# Example usage
main_string = "Hello, welcome to Python programming!"
substring = "Python"
result = find_substring(main_string, substring)
print(result)

Output:

'Python' is found in 'Hello, welcome to Python programming!'

2. Using the find() Method

The find() method returns the index of the first occurrence of the substring. If the substring is not found, it returns -1.

# Using find() method
def find_substring_position(main_string, substring):
    position = main_string.find(substring)
    if position != -1:
        return f"'{substring}' found at index {position} in '{main_string}'"
    else:
        return f"'{substring}' not found in '{main_string}'"

# Example usage
main_string = "The quick brown fox jumps over the lazy dog."
substring = "fox"
result = find_substring_position(main_string, substring)
print(result)

Output:

'fox' found at index 16 in 'The quick brown fox jumps over the lazy dog.'

3. Using the index() Method

The index() method is similar to find(), but it raises a ValueError if the substring is not found.

# Using index() method
def find_substring_index(main_string, substring):
    try:
        position = main_string.index(substring)
        return f"'{substring}' found at index {position} in '{main_string}'"
    except ValueError:
        return f"'{substring}' not found in '{main_string}'"

# Example usage
main_string = "Python is fun!"
substring = "fun"
result = find_substring_index(main_string, substring)
print(result)

Output:

'fun' found at index 10 in 'Python is fun!'

4. Using the count() Method

The count() method counts the number of times a substring occurs in a string.

# Using count() method
def count_substring(main_string, substring):
    count = main_string.count(substring)
    return f"'{substring}' occurs {count} time(s) in '{main_string}'"

# Example usage
main_string = "banana"
substring = "na"
result = count_substring(main_string, substring)
print(result)

Output:

'na' occurs 2 time(s) in 'banana'

5. Using Regular Expressions

For more advanced pattern matching, Python’s re module allows for complex substring searches.

import re

# Using regular expressions
def find_substring_regex(main_string, substring):
    match = re.search(substring, main_string)
    if match:
        return f"'{substring}' found at index {match.start()} in '{main_string}'"
    else:
        return f"'{substring}' not found in '{main_string}'"

# Example usage
main_string = "Learn Python with examples."
substring = "Python"
result = find_substring_regex(main_string, substring)
print(result)

Output:

'Python' found at index 6 in 'Learn Python with examples.'

Conclusion

Python provides multiple ways to find substrings in a string, catering to various use cases. The in operator is best for simple checks, while find() and index() are useful for locating the position. For counting occurrences, count() is ideal, and for complex patterns, regular expressions are powerful.


Mastering these techniques will enhance your ability to manipulate and analyze strings in Python efficiently. Happy coding! 🚀

Share with our team

Leave a Comment