一日一技:如何移除所有不可见字符?

简介: 一日一技:如何移除所有不可见字符?

在这篇文章:隐写术:如何正确保护文章的版权?里面,我介绍了两个特殊数字:82048205。当我们使用chr函数把他们转化成字符串以后,就能得到两个零宽字符。零宽字符肉眼不可见,也无法打印出来。


实际上,在整个 Unicode 字符集里面,这种不可见的字符还有很多。比如下面这句话:


See what's hidden in your string… or behind


如果在 Python 里面,使用repr函数显示这个字符串真正的样子,那么可以看到里面实际上有哪些字符:


1.png


那么,现在问题来了。如果给你一个字符串,如何把里面所有的不可见字符全部移除呢?


由于不知道里面有哪些不可见字符,所以显然不可能通过穷举的方法一个一个移除。那么,我们应该怎么把他们全部移除呢?


这个时候,我们可以使用字符串的.isprintable()方法。对于可见字符,这个方法返回 True,对于不可见字符,它返回False。例如:


2.png


于是,对于上面的字符串,我们可以通过这个方法,移除所有不可见字符,如下图所示:


3.png

请关注微信公众号【未闻Code】获取更多精彩文章。

目录
相关文章
|
8月前
|
算法 前端开发
从字符串中移除星号
从字符串中移除星号
68 0
|
2月前
删除字符串中的除字母外的字符
【10月更文挑战第31天】删除字符串中的除字母外的字符。
41 4
|
8月前
|
算法 测试技术 C#
【前缀和】3085. 成为 K 特殊字符串需要删除的最少字符数
【前缀和】3085. 成为 K 特殊字符串需要删除的最少字符数
|
8月前
2390.从字符串中移除星号
2390.从字符串中移除星号
42 0
|
SQL 运维 数据库
根据某个特定字符删除一行
根据某个特定字符删除一行
字符集合!!!
字符集合!!!
48 0
|
C语言 C++
从字符串中删除指定字符
从字符串中删除指定字符
143 2
|
数据安全/隐私保护 索引
labview字符串数据长度连接子字符串大小写替换删除插入日期匹配
labview字符串数据长度连接子字符串大小写替换删除插入日期匹配
269 0
C/C++编程题之删除字符串中出现次数最少的字符
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
第一个只出现一次的字符
第一个只出现一次的字符
51 0