亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么正則表達式中相對于“+”的空格會導致問題?

為什么正則表達式中相對于“+”的空格會導致問題?

紫衣仙女 2024-01-04 10:17:02
在Python代碼中,我曾經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],因為這是我的代碼和我引用的原始代碼之間唯一可見的區別。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}現在代碼正在運行,并且可以成功識別所有模式。但我仍然找不到為什么這些空間會導致這個問題?
查看完整描述

1 回答

?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

正則表達式中的符號+表示“一個或多個”。

So +表示“一個或多個 (空格)。And[\w\s]+表示“一個或多個任何字母數字或空白字符”。

如果您想匹配類似于10 total + 10 casesa 的模式+作為文字,則需要轉義該+符號。原始字符串(r在字符串之前)允許在字符串中使用文字反斜杠,可用于在正則表達式模式中進行轉義。

re.compile(r"[\w\s]+ total \+ [\w\s]+ cases")

請注意,它\+的意思是“字面上的+號”而不是“一個或多個”。


查看完整回答
反對 回復 2024-01-04
  • 1 回答
  • 0 關注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號