【问题标题】:Regular expression '^[abc]+$' not working as intended正则表达式 '^[abc]+$' 未按预期工作
【发布时间】:2019-09-02 18:28:43
【问题描述】:

我想找到只包含字母 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

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

【问题讨论】:

标签: python regex python-3.x pcre


【解决方案1】:

您想找到仅由这些字母组成的每一行行。所以,用re.MULTILINE搜索:

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

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

【讨论】:

  • 这是一个更好的解释+1
猜你喜欢
  • 1970-01-01
  • 2014-04-28
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多