如何验证字符属于可移植字符集



POSIX标准的编号指可移植字符集。

我需要检查用户输入是否符合标准,并且仅由可接受的字符组成。有什么方便的检查方法吗?

有一种乏味的方法可以手动从维基百科移植表:

portable_set = 'ab...'
def check(sample):
return all(c in portable_set for c in sample)

但是POSIX无处不在,所以我相信在python标准库的某个地方应该已经定义了这样的集合。但我不知道在哪里找到它。

我不相信python中内置这样的集合。如果它确实存在,我希望它位于string模块中,但它不在那里。

然而,python确实有string.printable,我很确定它包含了可移植字符集的前三个元素之外的所有元素。你只需将剩余部分粘贴到上,就可以使你的定义更加简洁

import string
portable_set = set(string.printable + 'ab')
def check(sample):
return set(sample).issubset(portable_set)
Python标准库中的

字符串包含一些字符串常量。其中一个是字符串可打印的。我想这就是你想要的。

import string
string.printable

您可以在这里阅读更多关于字符串和其他常量的信息:https://docs.python.org/3/library/string.html。

最新更新