我有一条线,“男孩 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