的Python manual狀態:Python的正則表達式 W
特殊序列\ W爲8位(字節)的圖案相匹配的字符的ASCII字符集 考慮字母數字;這相當於 [a-zA-Z0-9_]。
現在比較:
re.search(r"([\w]+)", 'München').group(1)
有:
re.search(r"([a-zA-Z0-9_]+)", 'München').group(1)
第一條語句輸出整個城市的名字慕尼黑,僅次於第一個字母M
。字母ü
是一個單字節,代碼點爲0xFC
= 252
(Latin-1)。 我的問題是:假設Python手冊是正確的,我如何使用Python-3手冊中的語句來協調[\w]+
和[a-zA-Z0-9_]+
之間的輸出差異?我使用IDLE v。3.6.2。
're.U'標誌默認情況下(啓用='\ W '匹配任何Unicode字母和數字)。默認情況下,Python 3字符串是Unicode字符串,而不是字節字符串。 –
但我使用拉丁文-1,而不是UTF-8。手冊不應該提及re.U標誌嗎? –
你究竟需要什麼?讓'\ w'總是隻匹配Python 3中的[A-Za-z0-9_]'?然後通過're.ASCII'標誌。 –