Python正则表达式理解

时间:2017-08-13 19:59:23

标签: regex python-3.x

我是python的新手,我正在解决一个问题。如果以下代码行可以告诉任何人正确的含义:

if collections.Counter(re.findall(r"[\w']+", decrypted))[repeat] >= 2:
            return decrypted

decrypted是一个长字符串,repeat是该字符串中的一个单词。

提前谢谢。

2 个答案:

答案 0 :(得分:0)

\w匹配任何单词字符(等于[a-zA-Z0-9_]含义所有字母,数字和下划线

+表示1次或多次(但至少为1次)

您尝试findall(全局)

online explaination

答案 1 :(得分:0)

让我们:

decrypted = "foo bar baz"

然后

re.findall(r"[\w']+", decrypted)

返回list个子串decrypted匹配规则r"[\w']+"所有字符串都包含字母,数字或单引号。结果为['foo', 'bar', 'baz']

方法collections.Counter从列表中创建一个特殊的dict类似对象。此对象的运算符[x]将返回给定列表中x的计数。

最后:

collections.Counter(re.findall(r"[\w']+", decrypted))[repeat]

返回repeatdecrypted个子行的计数。