在Python中查找字符串中的所有子字符串可以使用字符串的find()
方法或正则表达式来实现。以下是两种方法的示例:
find()
方法:def find_substrings(string, substring):
start = 0
indexes = []
while True:
index = string.find(substring, start)
if index == -1:
break
indexes.append(index)
start = index + 1
return indexes
string = "Hello, Hello, Hello, World!"
substring = "Hello"
indexes = find_substrings(string, substring)
print(indexes) # 输出:[0, 7, 14]
这个方法使用了一个循环来查找字符串中所有子字符串的索引位置,并将其存储在一个列表中返回。
import re
def find_substrings(string, substring):
pattern = re.compile(f'(?={substring})')
indexes = [match.start() for match in re.finditer(pattern, string)]
return indexes
string = "Hello, Hello, Hello, World!"
substring = "Hello"
indexes = find_substrings(string, substring)
print(indexes) # 输出:[0, 7, 14]
这个方法使用了正则表达式的零宽正向预查来匹配所有子字符串的位置,并使用re.finditer()
函数返回一个迭代器,然后通过列表推导式将匹配的位置提取出来。
无论使用哪种方法,都可以找到字符串中所有子字符串的位置。如果要使其更好,可以考虑以下几点:
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅供参考,具体产品选择应根据实际需求和情况进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云