在Python字符串中查找所有子字符串出现的位置
字符串由字符组成,在代码中使用单引号或双引号初始化,子字符串也是字符串中存在的字符。Python是一种用途广泛的高级语言,用户易于理解。本文介绍了使用Python语言查找字符串中所有子字符串出现位置的各种方法。一些常用方法包括index()方法、in运算符、find()方法以及使用正则表达式方法。
在Python字符串中查找所有子字符串出现的位置
子字符串是字符串的字符,下面解释了查找这些子字符串的方法。
语法
str.find(substr, initial, final)
使用find()函数给出要搜索的字符串str。此函数具有三个参数:子字符串、字符串的初始值(为0)以及最终值(可以根据字符串的长度而定)。
方法
方法1 - 使用try和except方法
方法2 - 使用“re”正则表达式
方法1:使用try和except方法打印子字符串所有出现位置的Python程序
初始化输入字符串,使用index()方法迭代每个未找到的子字符串,引发ValueError,并在except块中打印语句。
算法
步骤1 - 将变量定义为“Hello Welcome to Tutorialspoint”。
步骤2 - 将子字符串变量定义为“l”、“z”和“e”。
步骤3 - 使用index()方法查找从初始索引开始的字符串中子字符串的第一次出现。
步骤4 - 使用for循环迭代字符串,当子字符串存在于字符串中时,打印“所有字符串都找到”语句。
步骤5 - 当子字符串不存在于字符串中时,打印“并非所有字符串都找到”语句。
步骤6 - 使用try和except方法,检查字符串中子字符串的所有可能出现位置。
步骤7 - 运行以下代码时,将返回输出。
示例
#initializing the string num = "Hello welcome to India" #to find the occurrence of the substring ‘l’, ‘z’, ‘e’ is initialized as substr substr = ["l", "z", "e"] #trying to find the substrings using index() method try: for sub in substr: num.index(sub) #this statement is printed when the substring is present in the input string print("All substrings found!") except ValueError: #this statement is printed when the substring is not present in the input string print("substrings are not found!")
输出
substrings are not found!
方法2:使用“re”正则表达式打印子字符串所有出现位置的Python程序
创建正则表达式模式以将所有子字符串列表与输入字符串匹配。然后,使用re Python库中的findall()函数查找字符串的所有出现位置。如果匹配次数等于子字符串列表的长度,则此表达式返回true,否则返回false。
算法
步骤1 - 导入所需的模块作为“re”库,并定义名为all_substrings_present()的函数。
步骤2 - 使用已导入的“re”库使用findall()函数检查子字符串。
步骤3 - 当子字符串与字符串匹配时,定义的函数返回“true”,否则返回“false”。
步骤4 - 将名为input_str的字符串初始化为“Hello welcome to India”,其中包含一组字符串,并在下一条语句中初始化子字符串。
步骤5 - 使用if-else语句验证子字符串是否存在于input_str中。
步骤6 - 最后,根据条件返回打印语句。
示例
#importing the “re” module import re #defining the function with two parameters as input string and substring def strfind(input_str, substr_list): # Regular expression is created and initialized as a shape shape = "(?=.*" + ")(?=.*".join(substr_list) + ").*" #using the findall() function to check for the characters in the string matches = re.findall(shape, input_str) # when the substrings are matched with the strings it returns true else false return len(matches) == 1 #initializing the string input_str = "Hello welcome to India" #initializing the characters that need to be found in the input string substr_list = ["l", "c", "e"] #To check using the if else statement if strfind(input_str, substr_list): #when the characters are matched this statement is printed. print("All substrings found!") else: #when the characters are not matched this statement is printed. print("Not all substrings found.")
输出
All substrings found!
结论
程序员可以处理字符串,但是处理子字符串会导致一些复杂的问题。通过使用各种方法,我们可以找到给定输入字符字符串中子字符串的所有出现位置。输出根据字符串值的匹配返回。