首页 > 解决方案 > 在 python nlp 中删除狭窄的“无间断空格”Unicode 字符 (U+00A0)

问题描述

不间断空格打印为空白,但在内部处理为\xa0. 如何一次删除所有这些字符?

到目前为止,我已经直接替换了它:

text = text.replace('\u202f','')  
text = text.replace('\u200d','') 
text = text.replace('\xa0','')

但是每次我从外部来源抓取文本句子时,这些字符都是不同的。如何一次全部删除?

标签: python-3.xstringnlppython-unicodeunicode-string

解决方案


您可以改用正则表达式替换。
如果要替换所有空格,可以使用:

import re

text = re.sub(r'\s', '', text)

这包括所有 unicode 空格,如该问题的答案中所述。
从该答案中,您可以看到(在撰写本文时),\s在 Python 正则表达式中识别为空格(例如 )的 unicode 常量是:

0x0009
0x000A
0x000B
0x000C
0x000D
0x001C
0x001D
0x001E
0x001F
0x0020
0x0085
0x00A0
0x1680
0x2000
0x2001
0x2002
0x2003
0x2004
0x2005
0x2006
0x2007
0x2008
0x2009
0x200A
0x2028
0x2029
0x202F
0x205F
0x3000

看起来这将满足您的需求。


推荐阅读