POSIX 標準的編號參考Portable Character Set。
我需要檢查用戶輸入是否符合標準并且僅包含可接受的字符。有沒有什么方便的方式進行檢查?
從維基百科手動移植表有一種乏味的方法:
portable_set = '\0\a\b...'
def check(sample):
return all(c in portable_set for c in sample)
但是 POSIX 就在我們身邊,所以我相信在 python 標準庫中的某個地方應該已經定義了這樣的集合。但我不知道在哪里可以找到它。
uj5u.com熱心網友回復:
我不相信這樣的集合存在于 python 中。如果它確實存在,我希望它駐留在string模塊中,但它并不存在。
但是,python確實有string.printable,我很確定它包含除可移植字符集的前三個元素之外的所有元素。您可以通過將其余部分添加到它上面來使您的定義更簡潔:
import string
portable_set = set(string.printable '\0\a\b')
def check(sample):
return set(sample).issubset(portable_set)
uj5u.com熱心網友回復:
Python 標準庫中的 string 包含一些字串常量。其中之一是 string.printable。我認為這就是你正在尋找的。
import string
string.printable
您可以在此處閱讀有關字串和其他常量的更多資訊:https : //docs.python.org/3/library/string.html。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/367424.html
