2017-10-23 7 views
0

を見つけるためにキーをループ:Pythonの正規表現:私は特定の文字列の完全一致を見つけようとしています完全一致に

は、ユーザーが文字列を入力するように促され、「AAAA」を言うと私は正確を見つけたいですこのキーは、特定の辞書、のように見える辞書にある瞬間{:1、 'ZZZZ': 'AAAA' 2 'BCBC':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)

+0

「ZZZZBCBCAAAZZZZ」と入力した場合はどうなりますか? – RomanPerekhrest

+0

regexの代わりに、 'string in key'の場合はどうですか? – Marichyasana

+0

Ahmedは、どの解決策もあなたのために働いたのですか?また、 'dict = {'A':0、 'AAAA':1、 'ZZZZ':2、 'BCBC':3}'のようなものがあれば?それでも '1、2'を得る必要がありますか? –

答えて

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) 
0

申し訳ありませんが、私のpythonがある場合少し錆びますが、ループの後に必要なインデックスを保存して組み合わせるだけです。

注:これはおそらく最も効率的な方法ではありませんが、小さな辞書では恐ろしいことではありません。

関連する問題