![](/img/trans.png)
[英]Regular expression that finds and replaces non-ascii characters with Python
[英]How to include Non-ascii characters in regular expression in Python
我有一個文本文件,正在逐行閱讀。 在每一行中,如果有特殊字符,那么我將刪除特殊字符,為此,我使用了正則表達式。
fh = open(r"abc.txt","r+")
data = fh.read()
#print re.sub(r'\W+', '', data)
new_str = re.sub('[^a-zA-Z0-9\n\.;,?!$]', ' ', data)
因此,在我的數據中,我只保留字母數字詞以及一些[。;,?!$]特殊符號,但與此同時,我還需要歐元符號(€),英鎊(£),日語日元(¥)和盧比符號(₹)。 但是這些不是以ASCII字符顯示的,因此當我將它們包含在正則表達式中時,例如-re.sub('[^ a-zA-Z0-9 \\ n。;,!! $€₹¥]','' ,數據) ,則顯示錯誤消息。 語法錯誤:第23行的文件preprocess.py中的非ASCII字符'\\ xe2',但未聲明編碼
您可以使用Unicode字符轉義符 。 例如,上面的歐元字符可以表示為\€
。 不管編碼類型如何,四位數是Unicode編號。 在正則表達式示例中,它可能類似於:
[^a-zA-Z0-9\u20ac]
也許不是解決方案,但可能是部分解決方案。 將此用作每個Python 2文件的前兩行:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
這使Python 2切換到UTF-8(unicode)模式。 在Python 3中,這是默認設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.