Python 中 re.compile(r"[\w']+") 的含义

Lar*_*aul 1 python mapreduce bigdata python-2.7

我是 python 新手,正在尝试处理大数据代码,但无法理解表达式re.compile(r"[\w']+") 的含义。有人对此有任何想法吗?

这是我使用的代码。

from mrjob.job import MRJob
import re

WORD_REGEXP = re.compile(r"[\w']+")

class MRWordFrequencyCount(MRJob):

    def mapper(self, _, line):
        words = WORD_REGEXP.findall(line)
        for word in words:
            yield word.lower(), 1

    def reducer(self, key, values):
        yield key, sum(values)


if __name__ == '__main__':
    MRWordFrequencyCount.run()
Run Code Online (Sandbox Code Playgroud)

Zev*_*Zev 9

这是一个为更快重用而编译的正则表达式(在这个问题中解释:是否值得使用 re.compile)。命令 re.compile 在Python 文档中进行了解释。

关于特定的正则表达式,这将搜索具有\w1 或更长的字母数字(即部分)或撇号(也在那些方括号中)的组。请注意,空格不是匹配项,因此一般来说,这会将一行分成单词。

在特定于 Python 的正则表达式测试器中查看查询以试用它或在regex101查看它们提供对任何正则表达式表达式的解释。

在这句话中,How's it going $#这将如何三个匹配:How's, itgoing但不会匹配符号组。

有很多教程,甚至还有一些游戏,但您可以从regexone开始,通过尝试一些来更好地理解它。