Number1 Number2 Info1
1) 19124451932~18374913342~0- 9124441932
2) 18436889349~17064219321~0- 2024281123
3) 13352808654~19703842247~0- 9703842247
我正在寻找一个if-clause
,当True
的后9个数字是Info1
和/或Number1
的子字符串时,Number2
评估{{1}}那一行。
这将是python中更大的If条件的一部分。我可以找到很多方法来搜索子字符串中的完整字符串,但我找不到任何关于根据字符长度搜索子字符串的完整字符串。
非常感谢。
答案 0 :(得分:2)
这应该相当容易。假设线条看起来就像你写的那样,你可以这样做:
number1, number2, info1 = (s.strip() for s in line.split('~'))
if any(info1[-9:] in n for n in (number1, number2)):
pass # Do stuff
其工作原理如下:
(number1, number2)
中的每一个,查看是否存在由info1
的最后九个字符组成的子字符串。如果是的话,你的条件已经满足。答案 1 :(得分:1)
这样的事情:
import re
with open("abc") as f:
next(f) #skip header
for line in f:
n1,n2 = re.findall("(\w+)~",line)
info = line.split()[-1]
if info[-9:] in n1 or info[-9:] in n2:
print "yes"
else:
print "no"
输出
no
no
yes