【发布时间】:2020-05-22 11:41:36
【问题描述】:
我有一个字符串,我在其中搜索两个子字符串。如果两者都找到,我希望匹配为真,如果两者都没有找到,我希望匹配为假。如果两个字符串都找到但都在相同的索引上找到,我还希望匹配为假。所以我需要在字符串的不同实例上找到两者。
例如,如果我有一个字符串“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”
【问题讨论】:
-
@GregglePeggle 你的意思是匹配应该是不重叠的,对吗?
-
"所以一行“23121172”应该打印“Not Found”,一行“2117 117”应该打印“Found””,这是错误的,没有意义。
SearchList是要搜索的项目列表,但您将它与line混淆了。如果将line设置为其中任何一个值,它仍会打印"Found",因为SearchList包含两个子字符串。 -
至于这部分:“如果两个字符串都找到但都在相同的索引上找到,我也希望匹配为假。” - 你在这里要做的是在字符串上使用
.find来获取索引,然后从主字符串中剪切出匹配字符串并继续。
标签: python python-3.x string list