我有一個正則表達式,其中有兩個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