当前位置: 首页 > 面试题库 >

从Python的字符串中剥离除字母数字字符外的所有内容

浦德明
2023-03-14
问题内容

使用Python从字符串中剥离所有非字母数字字符的最佳方法是什么?

这个问题的PHP变体中提供的解决方案可能会进行一些小的调整,但对我来说似乎并不是很“ pythonic”。

作为记录,我不仅要删除句点和逗号(以及其他标点符号),还希望删除引号,方括号等。


问题答案:

使用Python从字符串中剥离所有非字母数字字符的最佳方法是什么?

这个问题的PHP变体中提供的解决方案可能会进行一些小的调整,但对我来说似乎并不是很“ pythonic”。

作为记录,我不仅要删除句点和逗号(以及其他标点符号),还希望删除引号,方括号等。我只是出于好奇而对某些功能进行了计时。在这些测试中,我从html" target="_blank">字符串string.printable(内置string模块的一部分)中删除了非字母数字字符。发现使用编译'[\W_]+'和pattern.sub('', str)最快。

$ python -m timeit -s \
     "import string" \
     "''.join(ch for ch in string.printable if ch.isalnum())" 
10000 loops, best of 3: 57.6 usec per loop

$ python -m timeit -s \
    "import string" \
    "filter(str.isalnum, string.printable)"                 
10000 loops, best of 3: 37.9 usec per loop

$ python -m timeit -s \
    "import re, string" \
    "re.sub('[\W_]', '', string.printable)"
10000 loops, best of 3: 27.5 usec per loop

$ python -m timeit -s \
    "import re, string" \
    "re.sub('[\W_]+', '', string.printable)"                
100000 loops, best of 3: 15 usec per loop

$ python -m timeit -s \
    "import re, string; pattern = re.compile('[\W_]+')" \
    "pattern.sub('', string.printable)" 
100000 loops, best of 3: 11.2 usec per loop


 类似资料:
  • 问题内容: 使用Python从字符串中剥离所有非字母数字字符的最佳方法是什么? 这个问题的PHP变体中提供的解决方案可能会进行一些小的调整,但对我来说似乎并不是很“ pythonic”。 作为记录,我不仅要删除句点和逗号(和其他标点符号),而且还要删除引号,方括号等。 问题答案: 我只是出于好奇而对某些功能进行了计时。在这些测试中,我从字符串(内置模块的一部分)中删除了非字母数字字符。发现使用已编

  • 问题内容: 我有一个不错的代码片段,但是我想知道是否有人对如何执行此操作有更好的建议: 你会怎么做? 问题答案: 您可以使用正则表达式(使用 模块)来完成同样的事情。下面的示例匹配(非十进制数字或句点的任何字符)的游程,并将其替换为空字符串。请注意,如果使用标志编译模式,则结果字符串仍可能包含非ASCII数字。同样,删除“非数字”字符后的结果不一定是有效数字。

  • 问题内容: 考虑一个非DOM场景,您想使用JavaScript / ECMAScript从字符串中删除所有非数字字符。范围内的任何字符都应保留。 您将如何用纯JavaScript实现此目标?请记住,这是一个非DOM方案,因此jQuery和其他涉及浏览器和按键事件的解决方案都不适合。 问题答案: 使用正则表达式为的字符串方法,这是与所有非数字匹配的速记字符类:

  • 问题内容: 我正在编写python MapReduce字数统计程序。问题是数据中散布着许多非字母字符,我发现这篇文章从Python的字符串中剥离了除了字母数字字符之外的所有内容,这显示了使用正则表达式的一个很好的解决方案,但是我不确定如何实现它 恐怕我不确定该如何使用该库甚至正则表达式。我不确定如何将正则表达式模式正确地应用于传入的字符串(书的一行)以检索没有任何非字母数字字符的新行。 有什么建议

  • 问题内容: 我过去跑步 在Perl上摆脱不可打印的字符。 在Python中,没有POSIX正则表达式类,因此我无法编写[:print:]来表示我想要的含义。我不知道在Python中无法检测字符是否可打印。 你会怎么做? 编辑:它也必须支持Unicode字符。string.printable方式会很乐意将它们从输出中剥离。curses.ascii.isprint将为任何unicode字符返回fals

  • 问题内容: 我想将以下字符串转换为提供的输出。 我还没有发现,将处理特殊字符,如任何解决方案,,,等。 基本上,我只是想摆脱所有不是字母数字的东西。这是我尝试过的… 尝试多个步骤 结果 任何帮助,将不胜感激。 工作解决方案: 问题答案: 删除非字母数字字符 以下是/正确的正则表达式,用于从输入字符串中去除非字母数字字符: 请注意,这等效于-它包括下划线字符。要删除下划线,请使用例如: 输入格式错误