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

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

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

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

阅读 2.6k
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编码的字符, 但没解码出来.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进