0
我想創建一個正則表達式來替換存儲在word
在目標字符串該字符串的所有文字實例:我怎麼不能用python中的變量創建這個正則表達式?
regex = re.compile("\\b" + word + "\\b")
Python來「養錯誤,V#無效的表達式」抱怨。爲什麼會有錯誤?我一定要逃避我的反斜槓,對吧?
我想創建一個正則表達式來替換存儲在word
在目標字符串該字符串的所有文字實例:我怎麼不能用python中的變量創建這個正則表達式?
regex = re.compile("\\b" + word + "\\b")
Python來「養錯誤,V#無效的表達式」抱怨。爲什麼會有錯誤?我一定要逃避我的反斜槓,對吧?
由於re.compile
不知道其輸入的一部分來自於用戶,你應該使用re.escape
做出特殊字符(如括號)word
匹配這些字符,而不是採取對他們的特殊含義正則表達式中,像這樣的: ```
import re
word = 'Par(ens'
regex = re.compile("\\b" + re.escape(word) + "\\b")
'word'是什麼內容? – nemo
're.compile(「\\ b」+「lalala」+「\\ b」)'適合我。當你打印文字時你會得到什麼? –
如果是用戶提供的,您可能需要使用're.escape(word)'。這將保護你的代碼不會崩潰,如果它包含無效的正則表達式模式的東西。如果你想允許'word'包含正則表達式的東西,你可能只需要捕捉異常並給用戶提供適當的反饋。 – Blckknght