正则表达式'^ [abc] + $'不能正常工作

时间:2019-09-02 18:28:43

标签: python regex python-3.x pcre

我想找到仅包含字母a,b和c的每一行。我有正则表达式

print(re.findall('^[abc]+$', text))

但是从此文本中我没有得到任何结果:

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
fsadfasd
quis nostraud exercitatione ullamco laboiris nisi ut aloiquip ex ea commuodo consequat.
gfgfgasdas
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
aaaabbbbcccaabcccabc
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
aabcbcbcbbabbbabcbbcbcf
culpa qui ofaeiouficia deserunt mollit anim id est laborum.
bbcbcbcbcbcbcbcbcbcbcbcbcbc
aeiou
aaaaaaaaaaaaaaaaaaaaaaaa

这是为什么?我认为问题出在^$字符上,但是我不明白为什么。

1 个答案:

答案 0 :(得分:5)

您想查找仅包含这些字母的每条。因此,用re.MULTILINE搜索行:

print(re.findall('^[abc]+$', text, re.MULTILINE))

没有此标志,re会将text视为一行,而^$将引用整个内容的开头和结尾文件的