如何在字段中搜索子字符串?

时间:2013-05-15 14:37:29

标签: python string search substring

   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条件的一部分。我可以找到很多方法来搜索子字符串中的完整字符串,但我找不到任何关于根据字符长度搜索子字符串的完整字符串。

非常感谢。

2 个答案:

答案 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