J'ai besoin de l'expression rationnelle Perl pour analyser l'entrée de texte brut et convertir tous les liens en liens HREF HTML valides. J'ai essayé 10 versions différentes que j'ai trouvées sur le web mais aucune d'entre elles ne semblait fonctionner correctement. J'ai également testé d'autres solutions publiées sur StackOverflow, mais aucune ne semble fonctionner. La bonne solution devrait être en mesure de trouver une URL dans l'entrée de texte brut et le convertir en:Comment puis-je extraire des URL à partir de texte brut avec Perl?
<a href="$1">$1</a>
Quelques cas d'autres expressions régulières, j'ai essayé ne pas traiter comprennent correctement:
- URL à la fin d'une ligne qui sont suivis par des retours
- URL qui comprenaient des points d'interrogation
- URL commençant par « https »
J'espère qu'un autre type de Perl aura déjà une expression régulière à utiliser pour ce partage. Merci d'avance pour votre aide!
regex est notoirement mauvaise manipulation à forme équilibrée. Puisque les URL sont basées sur une forme équilibrée, ce n'est pas la meilleure application pour regex. Je recommande d'utiliser une machine d'état à la place – tzenes
Qui vous a dit que les URL sont équilibrées? –
Les URL ne sont définitivement pas équilibrées. Cela ne veut pas dire que c'est forcément facile de bien les faire correspondre à une regex, bien sûr. –