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

发布于 2021-01-29 18:43:49

我正在编写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正确地应用于传入的字符串(书的一行)以检索没有任何非字母数字字符的新行。

有什么建议吗?

关注者
0
被浏览
152
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    采用 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.
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看