如何使用while循环查找文本文件中指定字符串的索引位置
代码补全方案
你可以参考下面的完整逻辑补全代码,同时覆盖边界场景、支持查找所有匹配项:
string = 'found' target_len = len(string) index = 0 # x = len(all) 你已经提前定义过,all是读取的文件完整内容变量 while index < x: # 剩余内容长度不足目标字符串长度时直接终止循环,避免无效判断 if index + target_len > x: break # 切片判断当前位置开始的子串是否匹配目标 if all[index:index + target_len] == string: # 结束下标说明:按从0开始的闭区间规则是index+target_len-1,按Python切片前闭后开规则是index+target_len print(f"String found between {index} and {index + target_len - 1}") # 不需要重叠匹配就加target_len,需要识别重叠匹配就改成index += 1 index += target_len else: index += 1
核心逻辑说明
- 提前计算目标字符串长度,避免循环中重复计算损耗性能
- 字符串切片
all[index:index + target_len]可以直接取出当前位置开始和目标串等长的内容,直接对比即可完成匹配判断 - 如果需要输出中文提示,把print语句替换为
print(f"字符串在位置{index}到{index + target_len - 1}之间被找到")即可
内容的提问来源于stack exchange,提问作者shlop37
相关产品推荐
相关产品推荐

