我有一长串人类可读的字符串,其中一些包含一些非ASCII甚至非拉丁字符。你知道吗
'Count €'
'Contains äüöß'
'Y tu mamá también.'
'что'
但是我使用的服务要求名称只由a-z
、A-Z
、0-9
、.
、_
、(空格)组成。你知道吗
什么是一个简洁的方式将它们转换成在这些要求下有效的唯一名称?你知道吗
我们希望尽可能保持人类的可读性。例如,理想情况下不要将.
更改为full stop
,也不要将&
更改为u38
。我们不能简单地删除无效字符或音调符号。例如:
'Count euro symbol'
'Contains a with umlaut u with umlaut o with umlaut sharp s'
'Y tu mama_ tambie_n.'
'cyrillic small letter che ...'
以下是限制条件:
-必须是Python(2和3)
-不需要安装软件包
-必须保持唯一性(如果有边缘情况而没有,则可以)
-必须简洁
(注:'Y tu mama tambien.'
不可接受,因为有可能打破唯一性约束。)
将任意字符串转换为有效的类名或标识符有一些相似之处。你知道吗
google“python字符名”会显示
unicodedata
模块。一个开始的地方是这让我
只需再多做一点工作(为转义选择一个合适的分隔符),您就可以保证这可以完美地进行往返,但这只是留给读者的一个练习。你知道吗
相关问题 更多 >
编程相关推荐