Python正则表达式:通过键循环查找完全匹配

时间:2017-10-23 16:06:11

标签: python regex

我正在尝试找到某个字符串的完全匹配:

提示用户输入一个字符串,例如“AAAA'我希望找到这个键在某个字典中的确切时刻,这个字典看起来像{' AAAA':1,' ZZZZ':2,' BCBC&# 39;:3}

现在我有:

string = input("enter string")
for key in dict.keys():
    regex = re.compile(r'^(key)$')
    if re.search(regex, string):
        match = re.search(string)
        print('match at %s') % (match.group(0))

我希望用户输入一个字符串,然后遍历所有可能的键,看看是否完全匹配。如果存在完全匹配,我想返回该键所在的值(索引)。因此,如果用户输入AAAAZZZZ,我希望它打印(1,2)

2 个答案:

答案 0 :(得分:0)

我不会在这种情况下使用正则表达式,只需查看可能的键:

d = {'AAAA':1, 'ZZZZ':2, 'BCBC':3}

k = 'AAAAZZZZ'

result = []
start_index = 0
for index in range(0, len(k)+1):
    if k[start_index:index] in d:
        result.append(d[k[start_index:index]])
        start_index = index

print(result)

答案 1 :(得分:0)

很抱歉,如果我的python有点生疏,但你应该只存储你想要的索引并在循环后将它们组合起来。

注意:这可能不是解决此问题的最有效方法,但鉴于小字典,这不会很糟糕。

string = input("enter string")
indices = []
for key in dict.keys():
    regex = re.compile(r'^(key)$')
    if re.search(regex, string):
        match = re.search(string)
        indices.append(dict[key])

print(','.join(map(str, indices)))