一日一技:如何移除所有不可见字符?
【摘要】 给你一个字符串,如何把里面所有的不可见字符全部移除呢?由于不知道里面有哪些不可见字符,所以显然不可能通过穷举的方法一个一个移除。那么,我们应该怎么把他们全部移除呢?
在这篇文章:隐写术:如何正确保护文章的版权?里面,我介绍了两个特殊数字:8204
和8205
。当我们使用chr
函数把他们转化成字符串以后,就能得到两个零宽字符。零宽字符肉眼不可见,也无法打印出来。
实际上,在整个 Unicode 字符集里面,这种不可见的字符还有很多。比如下面这句话:
See what's hidden in your string… or behind
如果在 Python 里面,使用repr
函数显示这个字符串真正的样子,那么可以看到里面实际上有哪些字符:
那么,现在问题来了。如果给你一个字符串,如何把里面所有的不可见字符全部移除呢?
由于不知道里面有哪些不可见字符,所以显然不可能通过穷举的方法一个一个移除。那么,我们应该怎么把他们全部移除呢?
这个时候,我们可以使用字符串的.isprintable()
方法。对于可见字符,这个方法返回 True
,对于不可见字符,它返回False
。例如:
于是,对于上面的字符串,我们可以通过这个方法,移除所有不可见字符,如下图所示:
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)