J'ai une expression régulière avec deux groupes qui sont OR'd et je me demande s'il est possible d'avoir un groupe comme référence seulement s'il correspond? Dans tous les cas, je suis désireux de faire correspondre spam.eggs.comRéférences «facultatives» dans l'expression régulière
Exemple:
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()
Produit:
(None, 'spam.eggs.com')
(None, 'spam.eggs.com')
('spam.eggs.com', None)
('spam.eggs.com', None)
Ce serait bien si mes groupes ne reviendrait mon groupe apparié et pas les deux.
Duh! Cela a un sens parfait. Je vous remercie! – TheDude