我在嘗試找出Python(2.7)腳本中的錯誤時遇到困難。我在使用sub和findall來區別特殊字符。Python中的正則表達式和Unicode:sub和findall之間的差異
下面是代碼:
>>> re.sub(ur"[^-'().,\w]+", '' , u'Castañeda', re.UNICODE)
u'Castaeda'
>>> re.findall(ur"[^-'().,\w]+", u'Castañeda', re.UNICODE)
[]
當我使用的findall,它正確地看到N作爲一個字母,但是當我使用分吧替換本 - 把它當作一個非字母字符。
我已經能夠使用findall與string.replace獲得正確的功能,但這似乎是一個不好的解決方案。另外,我想使用re.split,並且遇到與re.sub相同的問題。
在此先感謝您的幫助。
您使用的是哪個版本?它工作得很好2.7.1 – viraptor 2011-06-10 16:39:36
基於Python 2.7.1的ActivePython 2.7.1.4。謝謝你讓我知道它對你的工作很好。我的安裝可能有問題...我只是在Python 2.6.4上試過它,這也在我的機器上,而且我遇到了同樣的問題 – user793061 2011-06-10 17:02:55
我在ubuntu 11.04的控制檯上測試了它。以LANG = en_GB.UTF-8開始,沒有LC條目。 – viraptor 2011-06-10 17:04:54