搜索字符串,排除某些子字符串

时间:2013-05-24 12:28:44

标签: python string

我正在为000295-0000108352@ap.ipaccess.com搜索字符108352,这应该返回true。但是,如果我搜索它的子字符串,它不应该返回true。例如,如果我搜索08352,则缺少1,因此这将是错误的。我该怎么做到这一点?

我这样搜索:

for item in parse:          
            if element in item:

其中element08352,解析是列表中的几个字符串。这回归了我不想要的积极因素。

或许我应该寻找一种模式?在我搜索的每个字符串之后,我注意到@,在每个字符串之前都是0。那么也许是一个正则表达式?并以某种方式将其合并到我的forif

编辑:如果我在搜索字符串前加“00”并在结尾添加@会怎样?像:

if "00"+access_point_id+"@" in item:

2 个答案:

答案 0 :(得分:1)

简单的中缀搜索就足够了:

found = ("0%s@" % element) in item

-0+(\d+)@之类的正则表达式更安全:

m = re.search(r"-0+(\d+)@", item)
found = m and m.group(1) == element

答案 1 :(得分:1)

如果您要查找10位数的字符串,可以在搜索的字符串中添加填充:

>>> '{:0>10}'.format('08352')
'0000008352'
>>> '-{:0>10}@'.format('08352')
'-0000008352@'