0
   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该行的子字符串。

这将是 python 中更大的 If 条件的一部分。我可以找到很多方法来搜索完整字符串的子字符串,但我找不到任何关于根据字符长度搜索完整字符串的子字符串。

非常感谢。

4

2 回答 2

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是否存在。如果是,则您的条件已满足。
于 2013-05-15T14:47:12.240 回答
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
于 2013-05-15T14:47:05.180 回答