python - Python - 在字符串的不同部分查找子字符串
问题描述
我有一个字符串,我在其中搜索两个子字符串。如果两者都找到,我希望匹配为真,如果两者都没有找到,我希望匹配为假。如果两个字符串都找到但都在相同的索引上找到,我还希望匹配为假。所以我需要在字符串的不同实例上找到两者。
例如,如果我有一个字符串“23121172”并且我正在寻找“2117”和“117”,那么两个子字符串都会找到。但我想测试匹配项是否匹配相同的字符。
SearchList=["2117","117"]
line = "23121172"
if (all (x in line for x in SearchList)):
print("Found")
else:
print("Not Found")
所以一行“23121172”应该打印“Not Found”,一行“2117 117”应该打印“Found”
解决方案
如果我对您的理解正确,那么此代码可以帮助您:
for substr in sorted(SearchList, reverse=True):
if substr in line:
line = line.replace(substr, '')
else:
print("Not Found")
break
else:
print("Found")
请记住,代码修改了line
,所以如果您仍然需要它,请先创建一个副本