我有一個包含[a-z]以及á,ü,ó,ñ,...等字符的字符串。目前我正在使用正則表達式來獲取包含這些字符的文件中的每一行。 spanishList.txt的如何使用正則表達式在文件中查找非ascii字符Python
樣品:
adan
celular
tomás
justo
tom
átomo
camara
rosa
avion
Python代碼(charactersToSearch
來自燒瓶@application.route('/<charactersToSearch>')
):
print (charactersToSearch)
#'átdsmjfnueó'
...
#encode
charactersToSearch = charactersToSearch.encode('utf-8')
query = re.compile('[' + charactersToSearch + ']{2,}$', re.UNICODE).match
words = set(word.rstrip('\n') for word in open('spanishList.txt') if query(word))
...
當我這樣做,我期待得到在文本文件中的話其中包括charactersToSearch
中的字符。它適用於沒有特殊字符的文字:
...
#after doing further searching for other conditions, return list of found words.
return '<br />'.join(sorted(set(word for (word, path) in solve())))
>>> adan
>>> justo
>>> tom
唯一的問題是它忽略了文件中不是ASCII的所有單詞。我也應該得到tomás
和átomo
。
我試過編碼,UTF-8,使用你的'[...],但我一直無法讓它適用於所有字符。該文件和程序(# -*- coding: utf-8 -*-
)也在utf-8中。
你試圖'查詢= re.compile(U '[' + charactersToSearch + '] {2,} $',re.UNICODE).match'和不編碼'charactersToSearch'爲UTF8?,但而不是把它留作unicode? –
爲了澄清,您是否在考慮'á'是非ASCII?在擴展表格中是225。 (但也可以表示爲'a' +急性口音) – zx81
@JoranBeasley是的。我已經嘗試了兩種方式,但是每次獲得沒有任何特殊字符的單詞列表。 – santybm