RegEx - 或运营商

时间:2016-11-11 17:40:02

标签: python regex

我正在执行此操作。

print(re.findall(r'(<OR|<PP).*>', '<OR first><PP second><OR third>'))

预期:

['<OR first>', '<PP second>', '<OR third>']

实际值:

['<OR']

是否有人知道如何实现预期?

1 个答案:

答案 0 :(得分:3)

import re
print(re.findall(r'(?:<OR|<PP)[^>]*>', '<OR first><PP second><OR third>'))

请注意

  • findall仅返回捕获的组(如果有),否则返回完整匹配
  • .*贪婪地匹配,因此您的模式匹配整个字符串