Je cherche un modèle d'expression régulière qui pourrait correspondre à des URL en HTML qui ne sont pas enveloppées dans une balise 'a', afin de les envelopper dans 'a' plus loin (c'est-à-dire mettre en surbrillance tous les liens non mis en évidence).Correspond à toutes les URL qui ne sont pas enveloppées dans <a> tag
L'entrée est du HTML simple avec les balises 'a', 'b', 'i', 'br', 'p' 'img' autorisées. Toutes les autres balises HTML ne doivent pas apparaître dans l'entrée, mais les balises mentionnées ci-dessus peuvent apparaître dans toutes les combinaisons. Donc, pattern doit omettre toutes les URLs qui font partie des balises 'a' existantes, et faire correspondre tous les autres liens qui ne sont que du texte brut et qui ne sont pas mis en évidence et ne sont pas encore des hyperliens. Il serait bon que le modèle corresponde aux URL commençant par http: //, https: // ou www., Et se terminant par .net, .com. ou .org si l'URL ne commence pas par http: //, https: // ou www.
J'ai essayé quelque chose comme '(?! < [aA] [^>] +>) http://[a-zA-Z0-9._-]+ (?!)' Pour correspondre à un cas plus simple que celui décrit ci-dessus, mais il semble que cette tâche ne soit pas évident.
Merci beaucoup pour toute aide.
+1 pour suggérer BeautifulSoup. Ce problème n'est pas bien adapté à une solution regex pure. –