8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

在 python nlp 中删除窄“无间断空格”Unicode 字符(U+00A0)

Shobith k Chandran 2月前

31 0

不间断空格打印为空白,但在内部处理为 \xa0。如何一次性删除所有这些字符?到目前为止,我直接替换它:text = text.replace('\u202f','') t...

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

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

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

但每次我从外部源抓取文本句子时,这些字符都不同。我该如何一次性删除它们?

帖子版权声明 1、本帖标题:在 python nlp 中删除窄“无间断空格”Unicode 字符(U+00A0)
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Shobith k Chandran在本站《regex》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 您可以改用正则表达式替换。
    如果您想替换所有空格,您只需使用:

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

    这个问题 的答案中所述 .
    从该答案中,您可以看到(在撰写本文时), \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
    

    这看上去好像能满足您的需要。

  • 每天抓取时,\u202 后面的 unicode 字符都会不同。因此,我想删除所有出现的字符。我该怎么做?

  • Brn 2月前 0 只看Ta
    引用 4

    您可以使用 \h (水平空格)来匹配不间断空格(\s 也将匹配垂直空格;换行符等)

    \h 相当于 [\t\x{00A0}\x{1680}\x{180E}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}\x{2006}\x{2007}\x{2008}\x{2009}\x{200A}\x{202F}\x{205F}\x{3000}]

    https://regex101.com/ 是正则表达式的绝佳资源。您可以在快速参考(右下角)中搜索“whitespace”以查看可能对您有帮助的其他相关选项。(请记住查看完整的搜索结果)

返回
作者最近主题: