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

标签 python regex

我正在编写一个 python MapReduce 字数统计程序。问题是数据中有很多非字母字符,我发现这篇文章Stripping everything but alphanumeric chars from a string in 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,从字符串中删除所有非字母字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22520932/

相关文章:

javascript - 网址正则表达式验证

ruby-on-rails - 使用 Ruby 从字符串中删除 bytesize 大于 2 的字符

c# - 匹配控制字符之前出现的字符,如果控制字符不存在则匹配零

java - 允许特殊字符的正则表达式

python - Django _set.all 过滤器在模板中不起作用

python - 如何使用目录 api 和 python 将成员添加到组中?

Python:文件处理程序问题:删除文件而不留下 .nsf 文件

Python-根据键属性获取最大字典键

python - Spark,关于reduceByKey的小问题

ruby - 用于类似正则表达式匹配的 xpath 表达式?