Python: certaines REGEX ne fonctionnent pas si une chaîne ne commence pas et ne se termine pas par le même caractère
J'ai un petit problème avec Python et Regex. En fait, certaines expressions régulières ne fonctionnent pas si une chaîne ne commence pas et ne se termine pas par le même caractère. Par exemple j'ai ces balises html :
Les 3 premières balises fonctionnent, car une chaîne commence et se termine par le même caractère.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 pattern1 = r'<p class="text_obisnuit">.*((bebe|oana|mother|sun).*){3,}.*</p>' pattern2 = r'<p class="text_obisnuit2">.*((bebe|oana|mother|sun).*){3,}.*</p>' pattern3 = r'<title>.*((bebe|oana|mother|sun).*){3,}.*</title>' pattern4 = r'<meta name="description" content=.*((bebe|oana|mother|sun).*){3,}.*>'
Mais la balise 4, celle avec la méta description, ne fonctionne pas. Python ne trouve rien avec l'expression régulière.
Mon code doit trouver et traduire uniquement les balises qui contiennent au moins 3 des mots-clés que j'ai mis dans le Regex. Dans l'exemple ci-dessus, dans la balise meta description, il y a 3 mots-clés qui sont également dans la formule regex : bebe|oana|mother. Les 3 premières regex fonctionnent, je les teste, mais seule la 4 regex est ignorée par Python. Je ne sais pas pourquoi, mais je crois que c'est parce que la formule regex doit commencer et se terminer par la même chaîne. Par exemple, dans la balise title, regex commence par <title> et se termine par </title> .
Partager