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

Python,从字符串中删除所有非字母字符

倪鸿禧
2023-03-14
问题内容

我正在编写python
MapReduce字数统计程序。问题是数据中散布着许多非字母字符,我发现这篇文章从Python的字符串中剥离了除了字母数字字符之外的所有内容,这显示了使用正则表达式的一个很好的解决方案,但是我不确定如何实现它

def mapfn(k, v):
    print v
    import re, string 
    pattern = re.compile('[\W_]+')
    v = pattern.match(v)
    print v
    for w in v.split():
        yield w, 1

恐怕我不确定该如何使用该库re甚至正则表达式。我不确定如何将正则表达式模式v正确地应用于传入的字符串(书的一行)以检索没有任何非字母数字字符的新行。

有什么建议吗?


问题答案:

采用 re.sub

import re

regex = re.compile('[^a-zA-Z]')
#First parameter is the replacement, second parameter is your input string
regex.sub('', 'ab3d*E')
#Out: 'abdE'

或者,如果您只想删除一组特定的字符(因为输入中可以使用撇号…)

regex = re.compile('[,\.!?]') #etc.


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

  • 问题内容: 我们如何从Python字符串中删除所有非数字字符? 问题答案:

  • 问题内容: 尝试删除所有非0-9的字母和字符和一个句点。我正在使用,但它也会删除小数,如何也保留小数? 问题答案: 试试这个代码: 现在将包含。

  • 问题内容: 我正在尝试编写一种方法,该方法将从Java中删除所有非字母字符,然后将String转换为小写字符串。我尝试使用正则表达式将所有非字母字符的出现替换为。但是,我得到的输出无法执行此操作。这是代码 但是,如果我尝试提供具有非字母的输入(例如或),则输出也将由它们组成,因为它们不会被删除。 输入示例 我得到的输出 预期的输出 问题答案: 问题是您的更改没有存储,因为字符串是不可变的。每个方法

  • 问题内容: 我得到的任务是从文本文件或字符串中删除所有非数字字符,包括空格,然后在旧字符旁边打印新结果,例如: 之前: 后: 由于我是初学者,所以我不知道从哪里开始。请帮忙 问题答案: 最简单的方法是使用正则表达式

  • 问题内容: 我在从字符串中删除非utf8字符时出现问题,这些字符无法正确显示。像这样的字符0x97 0x61 0x6C 0x6F(十六进制表示) 删除它们的最佳方法是什么?正则表达式还是其他? 问题答案: 使用正则表达式方法: 它搜索UTF-8序列,并将其捕获到组1中。它还与无法标识为UTF-8序列的一部分的单个字节匹配,但不捕获这些字节。替换是捕获到组1中的任何内容。这将有效删除所有无效字节。