我環顧四周尋找一個定製的解決方案,但我無法找到我面臨的用例的解決方案。自定義的非ASCII字符標記
使用案例
我建立一個「網站」 QA測試,其中腳本會通過批量HTML文件,並找出任何惡意字符。我不能使用純非ASCII方法,因爲HTML文檔包含諸如「>」和其他次要字符的字符。因此,我正在製作一本unicode彩虹字典,用於標識我的團隊和我經常看到的一些非ASCII字符。以下是我的Python代碼。
# -*- coding: utf-8 -*-
import re
unicode_rainbow_dictionary = {
u'\u00A0':' ',
u'\uFB01':'fi',
}
strings = ["This contains the annoying non-breaking space","This is fine!","This is not fine!"]
for string in strings:
for regex in unicode_rainbow_dictionary:
result = re.search(regex,string)
if result:
print "Epic fail! There is a rogue character in '"+string+"'"
else:
print string
這裏的問題是字符串數組中的最後一個字符串包含非ascii連字符(合併的fi)。當我運行這個腳本時,它不捕獲連字符,但它捕獲第一種情況下的不可破壞的空格字符。
什麼是導致誤報?
爲什麼不'從字符串進口ascii_characters'使用,並說'如果不信的ascii_characters'? – ATLUS
@ATLUS我不能使用純粹的非ascii方法,因爲HTML文檔包含諸如「>」和其他次要字符的字符。例如,「Learn More>」 – Adib
爲什麼不實現一個你不想包含的字符串,比如'>'?如果你打印'ascii_letters',你可以從字面上得到'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',那麼爲什麼不加上你自己的字符串,如'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ <>'/'etc – ATLUS