[Regex] Adresses IP et noms de domaines en expression rationnelles

Les expressions rationnelles sont partout, et pour cause elles sont fort utiles. Juste une petite note pour parser des adresses IP et noms de domaines.

Adresse IPv4

Il y a mieux mais celle ci suffira probablement aux usages les plus courant. On cherche donc une serie de 4 nombres composés de 1 à 3 chiffres, et séparés par un point.

(\d{1,3}\.){3}\d{1,3}

Sinon, plus longue, celle-ci valide la cohérence de chaque octet (de 0 à 254):

((25[0-4]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)\.){3}(25[0-4]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)

Nom de domaine

Pour un nom de domaine, c’est de l’alphanumérique insensible à la casse, contenant  potentiellement des tirets (-) s’ils ne sont pas le premier caractère, et obligatoirement un point (.), voir plusieurs.

(?!-)[a-zA-Z0-9\.-]+\.[a-zA-Z0-9]+