說我有以下的解釋:python正則表達式*不是*字典中的東西*
d = {"word1":0, "word2":0}
對於這個正則表達式,我需要驗證串一句話不在字典中的關鍵。
爲了正則表達式的目的,是否可以在字典中設置變量爲而不是?
說我有以下的解釋:python正則表達式*不是*字典中的東西*
d = {"word1":0, "word2":0}
對於這個正則表達式,我需要驗證串一句話不在字典中的關鍵。
爲了正則表達式的目的,是否可以在字典中設置變量爲而不是?
>>> d = {"foo":0, "spam":0}
>>> test = "This is a string with many words, including foo and bar"
>>> any(word in d for word in test.split())
True
如果標點符號是一個問題(例如,"This is foo."
不會發現foo
這種方法),既然你說了你的話是字母數字,你也可以使用
>>> import re
>>> test = "This is foo."
>>> any(word in d for word in re.findall("[A-Za-z0-9]+", test))
雖然標點符號可能有問題。 – nhahtdh 2013-05-08 09:21:03
@nhahtdh:你說得對,我們應該定義一個在這種情況下「單詞」的含義。要求OP澄清。 – 2013-05-08 09:22:47
忘記正則表達式在這種情況下:
test = "word1 word2 word3" # your string
words = test.split(' ') # words in your string
dict = {"word1":0, "word2":0} # your dict
for word in words:
if word in dict:
print word, "is a key in dict"
else:
print word, "isn't a key in dict"
「字符串中的一個字」??什麼字符串?你爲什麼不能通過加入字典的鍵來製作正則表達式,然後嘗試和匹配。如果匹配成功,那麼你的條件失敗了?我在你的問題中遺漏了一些暗示嗎? – Vorsprung 2013-05-08 09:14:00
不,你必須將鍵轉換成可以被正則表達式工具使用的東西,或者只是逐個檢查,或者你可以將字符串拆分爲單詞並逐個檢查字典 – nhahtdh 2013-05-08 09:14:02
請定義「單詞」。 – 2013-05-08 09:22:10