关于python3 \u开头的字符串怎么去除

'\ue335武汉市中医医院妇科医师,医学硕士。\ue335湖

\ue022我们有开车吗
....

最近遇到这种\ue开发的字符串 如何把统一的全掉呢?我看了好像是一个方括号
不想字符串里面有这种\u开头的字符串

阅读 2.8k
2 个回答

\ue335\ue202 是合法的 Unicode,但是在 PUA 区。感觉正则不太好处理,因为这些仍然是单个字符。可以试试这个解决方案:

>>> import unicodedata
>>> s = '\ue335武汉市中医医院妇科医师'
>>> ''.join(c for c in s if unicodedata.category(c) != 'Co')
'武汉市中医医院妇科医师'
>>> 

如果偏爱正则,可以试试:

>>> import re
>>> s = '\ue335武汉市中医医院妇科医师\ue022我们有开车吗'
>>> re.sub(r'[\ue000-\uf8ff]', '', s, re.UNICODE)
'武汉市中医医院妇科医师我们有开车吗'
>>> 

用正则替换就行.

正则为 r'\u[0-9a-f]{4}'
这应该是一个unicode编码的字符, 但没解码出来.