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]+