J'apprends/je pratique Regex. Je l'ai écrit pour tester URL ... Je veux attraper dans ces formats URL:Question sur Regex
www.site.com
www.site.co.uk etc
site.com
play.site.com
J'ai écrit ceci:
(http:\/\/)*(www)*\.*(\w{2,})(\.{1})(\w{2,3})(\.*)(\w{2,3})*
(match de http: // 0 ou plusieurs fois, suivi de plusieurs caractères 0 fois ou plus, suivi d'un nom de domaine, suivi d'un point, suivi de quelques caractères supplémentaires (au moins 2, max 3), suivi d'une période optionnelle et de quelques caractères supplémentaires (pour co.uk etc).)
Je suis très nouveau à regex alors je ne sais pas si il y a des problèmes avec ce que j'ai fait, mais il voit ms pour bien fonctionner dans le test ici: http://regexpal.com/. N'hésitez pas à le déchirer!
La seule chose que j'ai remarquée est qu'elle correspond à .site.com que je ne veux pas. Comment puis-je faire correspondre simplement site.com et toujours autoriser http: // et www et sous-domaines?
Vous voudrez peut-être consulter le? opérateur - Je ne pense pas que vous voulez vraiment faire correspondre le http: // ou www plusieurs fois. – user470379
Oui. Merci. C'est très utile ... même que {0,1} n'est-ce pas? –
Vos exemples ne sont pas des URL, ce sont des noms d'hôtes et les noms d'hôtes ne sont pas pratiques pour repérer du texte général, car tout mot ou séquence de mots séparés par des points est un nom d'hôte valide. Dire quelque chose avec (point) (deux ou trois lettres) à la fin est un nom d'hôte est périlleux car vous attraperez les deux faux positifs, * et * ne correspondent à aucun des TLD qui ne sont pas 2-3 lettres de long. Je ne tenterais pas de faire correspondre les noms d'hôtes dans le texte; mieux vaut exiger que les utilisateurs soient explicites et tapez le 'http: //'. – bobince