我想找到每行只由字母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
这是为什么呢?我认为问题出在^
和$
角色上,但我不明白为什么。
您希望查找仅由这些字母组成的每行。因此,使用re.MULTILINE
搜索行:
print(re.findall('^[abc]+$', text, re.MULTILINE))
如果没有此标志,re
将text
视为一行,^
和$
将引用文件整个内容的开头和结尾。