Tout dabord, les # #i sont juste la pour encadrer l'expression et le i veux dire que si tu met un A au lieu d'un a ça fonctionne aussi.
Ensuite, les (?: ) c'est pour délimiter une zone (qui permet d'utiliser le ? pour 0 ou 1, le * pour 0 ou plus et le + pour 1 ou plus
([a-z]+://)? => n'importe quelle suite de lettre suivies de "://" ce qui inclu http:// ftp:// https:// et j'en passe. C'est optionnel (le ?)
(
www.)? => La chaine "www." optionnelle
[a-z0-9-_]+ => n'importe quelle suite de lettre, chiffres, tiret et tiret bas
(\.[a-z]{2,4})+ => Nom de domaine : un point suivi d'une suite de 2 à 4 lettre (de .fr le plus court à .info le plus long), attention en cas de .fr.st par exemple
[a-z0-9-_%/]+ => une suite quelconque de lettres, de chiffres, de % de tiret, de tiret bas et de slash.
\.[a-z0-9]+ => l'extension si jamais c'est un fichier a savoir un point suivi d'une suite de lettres ou de chiffres
\?[^\s]* => les parametres passés au fichier exemple à savoir une suite de caractères jusqua un espace : ?toto=truc&machin=truc
Partager