![](/img/trans.png)
[英]How do I get a regular expression to recognize non-ASCII characters as letters?
[英]How do I get this regular expression to ignore accented characters?
我有一個文本文件,腳本正在讀取該文件並從中獲取最常用的單詞。 但是,在執行此操作的某一時刻,在清理源文本期間,它無法處理帶重音符號的字符(在這種情況下,它們是áéíóöőúúüű)。
這就是我目前所擁有的。
str = re.sub(r'\W+', ' ', str)
這只是刪除重音字符。 我試過添加flags=re.U
,但是它以不同的方式弄亂了結果。 我懷疑有一種簡單的方法可以解決我的問題,盡管我一直在尋找它,但是沒有成功,所以我求助於您。 提前致謝。
您需要使用正確的修飾符:
str = re.sub(ur'\W+', u' ', s, flags=re.UNICODE)
^^^^^^^^^^
參見Python 2.x文檔 :
使
\\w
,\\W
,\\b
,\\B
,\\d
,\\D
,\\s
和\\S
序列依賴於Unicode字符屬性數據庫。 還為IGNORECASE啟用非ASCII匹配。
這是一個在線Python 2.7演示 :
import re
s = u"characters (in this case, they are áéíóöőúüű)."
res = re.sub(ur'\W+', u' ', s, flags=re.UNICODE).encode("utf8")
print(res) # => characters in this case they are áéíóöőúüű
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.