J'ai besoin d'aide pour créer une expression régulière qui puisse correspondre correctement à une URL dans un texte libre.Correspondant correctement à une URL IDN
- système
- un des éléments suivants: ftp, http, https (est FTPS un protocole?)
- option utilisateur (et en option passe)
- hôte (avec support pour IDN)
- support pour www et sous-domaine (s) (avec support pour IDN)
- filtrage de base du TLD (
[a-zA-Z]{2,6}
est assez, je pense)
- option Port numéro
- chemin (en option, avec un support pour les caractères Unicode)
- requête (en option, avec un support pour les caractères Unicode)
- fragment (en option, avec un support pour les caractères Unicode)
Voici ce que je pourrais en savoir plus sur les sous-domaines:
A « sous-domaine » eXPRIME relatif dépendance, et non la dépendance absolue: par exemple, wikipedia.org comprend un sous-domaine du domaine org, et fr.wikipedia.org comprend un sous domaine du domaine wikipedia.org. En théorie , cette subdivision peut descendre à 127 niveaux de profondeur, et chaque étiquette DNS peut contenir jusqu'à 63 caractères, comme longtemps que l'ensemble nom de domaine ne dépasse pas une longueur totale de 255 caractères.
En ce qui concerne le nom de domaine lui-même, je ne pouvais pas trouver une source fiable mais je pense que l'expression régulière pour les non-IDNs (Je ne sais pas comment écrire une version compatible IDN) est quelque chose comme:
[0-9a-zA-Z][0-9a-zA-Z\-]{2,62}
que quelqu'un peut me aider avec cette expression régulière ou me pointer vers une bonne direction?
Avec "support pour IDNs", voulez-vous dire qu'il devrait soutenir www.emilvikström.se ou juste la version punycode www.xn--emilvikstrm-0fb.se? –
@Emil: emilvikström.se, je crois que je devrais utiliser la propriété '\ p {L}' mais je ne suis pas sûr. –