在Python代碼中,我曾經(jīng)re.compile()檢查給定的單詞是否存在。PATTERNS = { re.compile(r'[\w\s] + total+ [\w\s] + cases'): data.get_total_cases, re.compile(r'[\w\s] + total cases'): data.get_total_cases, re.compile(r'[\w\s] + total + [\w\s] + deaths'): data.get_total_deaths, re.compile(r'[\w\s] + total deaths'): data.get_total_deaths}這沒有按預期工作。我找不到任何問題。最后,我刪除了每個字符集后面的空格[\w\s],因為這是我的代碼和我引用的原始代碼之間唯一可見的區(qū)別。PATTERNS = { re.compile(r'[\w\s]+ total+ [\w\s]+ cases'): data.get_total_cases, re.compile(r'[\w\s]+ total cases'): data.get_total_cases, re.compile(r'[\w\s]+ total+ [\w\s]+ deaths'): data.get_total_deaths, re.compile(r'[\w\s]+ total deaths'): data.get_total_deaths}現(xiàn)在代碼正在運行,并且可以成功識別所有模式。但我仍然找不到為什么這些空間會導致這個問題?
1 回答

ABOUTYOU
TA貢獻1812條經(jīng)驗 獲得超5個贊
正則表達式中的符號+
表示“一個或多個”。
So +
表示“一個或多個
(空格)。And[\w\s]+
表示“一個或多個任何字母數(shù)字或空白字符”。
如果您想匹配類似于10 total + 10 cases
a 的模式+
作為文字,則需要轉(zhuǎn)義該+
符號。原始字符串(r
在字符串之前)允許在字符串中使用文字反斜杠,可用于在正則表達式模式中進行轉(zhuǎn)義。
re.compile(r"[\w\s]+ total \+ [\w\s]+ cases")
請注意,它\+
的意思是“字面上的+號”而不是“一個或多個”。
添加回答
舉報
0/150
提交
取消