我有一个正则表达式,其中有两个OR'd组,我想知道是否有可能让一个组成为反向引用而只有如果匹配?在任何情况下,我想匹配spam.eggs.com正则表达式中的“可选”反向引用
例子:
import re
monitorName = re.compile(r"HQ01 : HTTP Service - [Ss][Rr][Vv]\d+\.\w+\.com:(\w+\.\w+\.(?:net|com|org))|(\w+\.\w+\.(?:net|com|org))")
test = ["HQ01 : HTTP Service - spam.eggs.com",
"HQ01 : HTTP Service - spam.eggs.com - DISABLED",
"HQ01 : HTTP Service - srv04.example.com:spam.eggs.com",
"HQ01 : HTTP Service - srv04.example.com:spam.eggs.com - DISABLED"]
for t in test:
m = monitorName.search(t)
print m.groups()
产地:
(None, 'spam.eggs.com')
(None, 'spam.eggs.com')
('spam.eggs.com', None)
('spam.eggs.com', None)
这会是很好,如果我的团体只会回报我的一个匹配组,而不是两个。
咄!非常有意义。谢谢! – TheDude 2010-01-12 19:18:20