Python program to split a string by the given list of strings

Given a list of strings. The task is to split the string by the given list of strings.
Input : test_str = ‘geekforzambiatekbestforzambiatek’, sub_list = [“best”]
Output : [‘geekforzambiatek’, ‘best’, ‘forzambiatek’]
Explanation : “best” is extracted as different list element.Input : test_str = ‘geekforzambiatekbestforzambiatekCS’, sub_list = [“best”, “CS”]
Output : [‘geekforzambiatek’, ‘best’, ‘forzambiatek’, “CS”]
Explanation : “best” and “CS” are extracted as different list element.
Method : Using re.split() + | operator
In this, we perform the task of split using regex split() with | operator to check for all the words that need to be put separately.
Python3
# Python3 code to demonstrate working of # Separate specific Strings# Using re.split() + | operatorimport re# initializing stringtest_str = 'geekforzambiatekisbestforzambiatek'# printing original Stringprint("The original string is : " + str(test_str))# initializing list words sub_list = ["best"]# regex to for splits()# | operator to include all strings temp = re.split(rf"({'|'.join(sub_list)})", test_str)res = [ele for ele in temp if ele] # printing result print("The segmented String : " + str(res))  | 
The original string is : geekforzambiatekisbestforzambiatek The segmented String : ['geekforzambiatekis', 'best', 'forzambiatek']
Time Complexity: O(n)
Auxiliary Space: O(n)
Method : Using replace(),split() methods
Approach
- Initiate a for loop to traverse list of strings
 - Replace the string in original string by appending “*” front and back
 - Finally split the string with * as parameter
 - This will return a list, display the list
 
Python3
# Python3 code to demonstrate working of# Separate specific Strings# initializing stringtest_str = 'geekforzambiatekisbestforzambiatek'# printing original Stringprint("The original string is : " + str(test_str))# initializing list wordssub_list = ["best"]for i in sub_list:    test_str=test_str.replace(i,"*"+i+"*")res=test_str.split("*")# printing resultprint("The segmented String : " + str(res)) | 
The original string is : geekforzambiatekisbestforzambiatek The segmented String : ['geekforzambiatekis', 'best', 'forzambiatek']
Time Complexity : O(N)
Auxiliary Space : O(N)
Method 3 : Use the re module
step by step approach :
- The program starts by importing the “re” module. This module provides regular expression operations in Python.
 - The program then initializes a string variable named “test_str” with the value “geekforzambiatekisbestforzambiatek”.
 - The program then prints the original string using the “print” statement and concatenating the original string with a string literal.
 - The program initializes a list variable named “sub_list” with the value [“best”].
 - The program creates a regular expression pattern by joining the elements of the “sub_list” with a pipe symbol “|”. The pipe symbol is used to separate the substrings in the pattern. The resulting pattern is assigned to the variable “pattern”.
 - The program then splits the original string “test_str” using the regular expression pattern stored in the variable “pattern”. The resulting segments are stored in the variable “res”.
 - Finally, the program prints the segmented string using the “print” statement and concatenating the segmented string with a string literal.
 
Python3
import re# initializing stringtest_str = 'geekforzambiatekisbestforzambiatek'# printing original Stringprint("The original string is : " + str(test_str))# initializing list wordssub_list = ["best"]# add a '|' between the substrings to create the pattern for splittingpattern = '|'.join(sub_list)# split the string using the patternres = re.split(pattern, test_str)# printing resultprint("The segmented String : " + str(res)) | 
The original string is : geekforzambiatekisbestforzambiatek The segmented String : ['geekforzambiatekis', 'forzambiatek']
Time complexity: The replace() method has a time complexity of O(n), where n is the length of the string.
Auxiliary space: The original string is replaced with a new string, which has a space complexity of O(n). The segmented string is stored in a list, which has a space complexity of O(m), where m is the number of substrings. Overall, the space complexity is O(n+m).
				
					

