在一个正则表达式python中执行多个单词搜索

时间:2016-11-24 15:49:57

标签: python regex

我有一条线,“男孩 25e6很生气,所以他从女孩 37b6偷了一辆车,被cop58c9逮捕了”。 我想要一个正则表达式来获取仅来自 boy girl 的数字。

我能做到

if re.search("boy([0-9,a-f]+),", line) or re.search("girl([0-9,a-f]+)", line):

是否有将这两个正则表达式合并为一个?

2 个答案:

答案 0 :(得分:0)

是的,您可以(boy|girl)([0-9a-f]+)

答案 1 :(得分:0)

或许更好的方法是使用finditer模块中的re

>>> import re
>>> s = "Boy25e6 was angry so he stole a car from girl37b6 and was arrested by cop58c9"
>>> f = re.finditer(r'((?:boy|girl)\w+)', s, re.I)
>>> f
<callable-iterator object at 0x7fb3821e3190>
>>> for m in f:
...     print m.group(1)
... 
Boy25e6
girl37b6
相关问题