在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()方法遍历每个找不到的子字符串,抛出值错误,并在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步 - 使用findall()函数,因为导入了“re”库,来检查子字符串。
-
第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!
结论
程序员可以处理字符串,但处理子字符串会导致一些复杂的问题。通过使用各种方法,我们可以找到给定输入字符串中子字符串的所有出现。输出是基于字符串值的匹配返回的。