正则表达式'^[abc]+$'未能按预期工作

3

我想查找仅由字母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

为什么会这样呢?我觉得问题出在^$字符上,但是我不理解为什么。


什么是 text - ForceBru
@ForceBru 这个Pastebin中的文本... - caesar
这是在Python中使用正则表达式匹配整行的问题的副本。 - Wiktor Stribiżew
1个回答

5
你想找到只由这些字母组成的每一行。因此,使用 re.MULTILINE 在这些行上进行搜索:
print(re.findall('^[abc]+$', text, re.MULTILINE))

没有这个标志,re将把text视为单行,^$将引用文件的整个内容的开头和结尾。

这是一个更好的解释 +1 - user557597

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接