我正在为000295-0000108352@ap.ipaccess.com
搜索字符108352
,这应该返回true。但是,如果我搜索它的子字符串,它不应该返回true。例如,如果我搜索08352
,则缺少1,因此这将是错误的。我该怎么做到这一点?
我这样搜索:
for item in parse:
if element in item:
其中element
是08352
,解析是列表中的几个字符串。这回归了我不想要的积极因素。
@
,在每个字符串之前都是0
。那么也许是一个正则表达式?并以某种方式将其合并到我的for
和if
?
编辑:如果我在搜索字符串前加“00”并在结尾添加@会怎样?像:
if "00"+access_point_id+"@" in item:
答案 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@'