我使用以下表達式時收到錯誤消息:re.sub(r"([^\s\w])(\s*\1)+","\\1","...")我在RegExr中檢查了正則表達式,它.按預期返回。但是當我在Python中嘗試時,出現以下錯誤消息:raise error, v # invalid expressionsre_constants.error: nothing to repeat有人可以解釋一下嗎?
3 回答

躍然一笑
TA貢獻1826條經驗 獲得超6個贊
那是“ *”和特殊字符之間的Python錯誤。
代替
re.compile(r"\w*")
嘗試:
re.compile(r"[a-zA-Z0-9]*")
它可以工作,但是不能使用相同的正則表達式。
該錯誤似乎已在2.7.5和2.7.6之間修復。

HUWWW
TA貢獻1874條經驗 獲得超12個贊
實際上,這不僅是帶有*的Python錯誤,而且還可能在將字符串作為要編譯的正則表達式的一部分傳遞時發生,例如;
import re
input_line = "string from any input source"
processed_line= "text to be edited with {}".format(input_line)
target = "text to be searched"
re.search(processed_line, target)
如果處理過的行包含一些“(+)”(例如,您可以在化學式中找到)或此類字符鏈,則將導致錯誤。解決方案是逃脫,但是當您即時進行操作時,可能會發生無法正確執行操作的情況...
添加回答
舉報
0/150
提交
取消