2016-11-11 131 views
0

我正在執行此操作。RegEx - 或運營商

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

預計:

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

實際:

['<OR'] 

任何身體不知道怎樣才能達到預期?

回答

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

注意

  • 的findall只返回捕獲組,如果有的話,否則全場比賽
  • .*比賽貪婪,所以你的模式整個字符串
+0

謝謝匹配塞巴斯蒂安Proske! –

+0

而不是'[^>] *'你也可以使用'。*?',這是非貪婪的等價於'。*' – qzb