从字符串中删除非字母数字,但保留编码的非ASCII字符

柯林

如何保留åäö​​,但从字符串中删除所有其他非字母数字字符?(我发现了类似的问题,但似乎没有一个正确的答案。)

我尝试了诸如扩展正则表达式之类的操作,以尝试使其在子程序中跳过åäö,但似乎只是使正则表达式停止一起工作,让空格和此类字符保持不变。我通常不使用python进行编程,只是试图帮助一个朋友,所以可能有比使用re更好的方法来清理字符串。

从谷歌搜索的角度来看,我认为它与Unicode有关,但没有好的解决方案。

def ordnaText(text): 
    text = text.lower()
    text = re.sub('\W', '', text)
    if text.isalnum() == True:
        return text
马丁·彼得斯(Martijn Pieters)

您正在尝试与编码输入进行匹配raw_input()在Python 2中总是返回一个字节字符串。这意味着您使用的终端,控制台或IDE决定输入使用哪种编码。

尝试使用正则表达式匹配非ASCII字符,使用字节字符串要求您精确匹配编码的字节,这通常意味着终端环境或源代码编辑器设置的任何更改都将导致匹配失败。

您要在raw_input()此处显式解码,并使用Unicode匹配:

import sys
import re

def ordnaText(text): 
    text = text.lower()
    text = re.sub(u'\W', '', text, flags=re.UNICODE)
    if text.isalnum() == True:
        return text

userinput = raw_input('....')
userinput = userinput.decode(sys.stdin.encoding)
something = ordnaText(userinput)

sys.stdin.encoding告诉您Python认为输入编解码器是什么。flags=re.UNICODE在正则表达式引擎中使用专门打开unicode支持的开关。u'\W'为引擎提供Unicode字符串文字;后者是可选的,但最好是明确的。

如果您想了解有关Unicode,编码的字节字符串及其与Python的关系的更多信息,我建议您阅读:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从C中的字符串中删除非字母数字字符

来自分类Dev

LUA字符串,删除非字母数字或空格

来自分类Dev

从字符串C ++中删除非字母字符

来自分类Dev

SQL从字符串中删除非字母字符

来自分类Dev

从字符串中删除非字母字符

来自分类Dev

如何在保留Unicode编码的字符和撇号(\')的同时删除非字母数字字符?

来自分类Dev

从字符串中删除非数字和非字符符号

来自分类Dev

以非字母数字顺序编码字符串变量

来自分类Dev

从字符串中删除字母字符,保留数字和符号

来自分类Dev

删除所有非字母字符,保留字符串中的空格

来自分类Dev

从SPSS中的字符串中删除非数字

来自分类Dev

从字符串中删除特殊的非字母数字字符

来自分类Dev

从删除所有非字母数字字符的字符串中获取列表

来自分类Dev

删除非字母数字但保留拉丁字符

来自分类Dev

从文件中删除字符串中的非ASCII字符

来自分类Dev

从 URL PHP 中删除非字母数字可打印字符的 ASCII 十六进制代码

来自分类Dev

从php中的字符串中删除字母数字单词

来自分类Dev

删除字母数字字符串的数字部分但保留纯数字

来自分类Dev

Java:从不含正则表达式的字符串中删除非字母字符

来自分类Dev

从字符串中删除非字母字符和多个空格

来自分类Dev

从字符串中删除非数字字符并将数字作为整数转换为数组

来自分类Dev

从字符串中删除字母数字词

来自分类Dev

从字母数字字符串中删除数值

来自分类Dev

从字母数字字符串中删除数值

来自分类Dev

从字符串中删除不在字母旁边的数字

来自分类Dev

如何有效删除非ASCII字符和数字,但保留带重音的ASCII字符

来自分类Dev

Python-unicode字符串中的ASCII编码字符串;如何删除“ u”?

来自分类Dev

如何对非ASCII字符串和非整数数字进行编码?

来自分类Dev

如何使用正则表达式从字符串中删除所有非字母数字字符(“#”除外)?

Related 相关文章

  1. 1

    从C中的字符串中删除非字母数字字符

  2. 2

    LUA字符串,删除非字母数字或空格

  3. 3

    从字符串C ++中删除非字母字符

  4. 4

    SQL从字符串中删除非字母字符

  5. 5

    从字符串中删除非字母字符

  6. 6

    如何在保留Unicode编码的字符和撇号(\')的同时删除非字母数字字符?

  7. 7

    从字符串中删除非数字和非字符符号

  8. 8

    以非字母数字顺序编码字符串变量

  9. 9

    从字符串中删除字母字符,保留数字和符号

  10. 10

    删除所有非字母字符,保留字符串中的空格

  11. 11

    从SPSS中的字符串中删除非数字

  12. 12

    从字符串中删除特殊的非字母数字字符

  13. 13

    从删除所有非字母数字字符的字符串中获取列表

  14. 14

    删除非字母数字但保留拉丁字符

  15. 15

    从文件中删除字符串中的非ASCII字符

  16. 16

    从 URL PHP 中删除非字母数字可打印字符的 ASCII 十六进制代码

  17. 17

    从php中的字符串中删除字母数字单词

  18. 18

    删除字母数字字符串的数字部分但保留纯数字

  19. 19

    Java:从不含正则表达式的字符串中删除非字母字符

  20. 20

    从字符串中删除非字母字符和多个空格

  21. 21

    从字符串中删除非数字字符并将数字作为整数转换为数组

  22. 22

    从字符串中删除字母数字词

  23. 23

    从字母数字字符串中删除数值

  24. 24

    从字母数字字符串中删除数值

  25. 25

    从字符串中删除不在字母旁边的数字

  26. 26

    如何有效删除非ASCII字符和数字,但保留带重音的ASCII字符

  27. 27

    Python-unicode字符串中的ASCII编码字符串;如何删除“ u”?

  28. 28

    如何对非ASCII字符串和非整数数字进行编码?

  29. 29

    如何使用正则表达式从字符串中删除所有非字母数字字符(“#”除外)?

热门标签

归档