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

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

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


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


See what's hidden in your string… or behind


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


1.png


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


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


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


2.png


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


3.png

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

目录
相关文章
|
7月前
|
算法 前端开发
从字符串中移除星号
从字符串中移除星号
56 0
|
24天前
删除字符串中的除字母外的字符
【10月更文挑战第31天】删除字符串中的除字母外的字符。
34 4
|
5月前
|
索引
charAt()方法- 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1,开头的为0, 用来获取单个字符的
charAt()方法- 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1,开头的为0, 用来获取单个字符的
|
7月前
2390.从字符串中移除星号
2390.从字符串中移除星号
35 0
|
SQL 运维 数据库
根据某个特定字符删除一行
根据某个特定字符删除一行
|
C语言 C++
从字符串中删除指定字符
从字符串中删除指定字符
129 2
|
数据安全/隐私保护 索引
labview字符串数据长度连接子字符串大小写替换删除插入日期匹配
labview字符串数据长度连接子字符串大小写替换删除插入日期匹配
263 0
|
C语言
查找某字符串出现的位置,并且输出该第一个字母所在的位
查找某字符串出现的位置,并且输出该第一个字母所在的位
136 0
查找某字符串出现的位置,并且输出该第一个字母所在的位
C/C++编程题之删除字符串中出现次数最少的字符
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
删除字符串中字符最少的字符并返回
删除字符串中字符最少的字符并返回