Ceci est l'expression rationnelle que j'utilise pour la validation IP générale:
(([0-9](?!\d)|[1-9][0-9](?!\d)|1[0-9]{2}(?!\d)|2[0-4][0-9](?!\d)|25[0-5](?!\d))[.]?){4}
Répartition:
1.`[0-9](?!\d)` -> Any Number 0 through 9 (The `(?!\d)` makes sure it only grabs stand alone digits)
2.`|[1-9][0-9](?!\d)` -> Or any number 10-99 (The `(?!\d)` makes sure it only grabs double digit entries)
3.`|1[0-9]{2}` -> Or any number 100-199
4.`|2[0-4][0-9]` -> Or any number 200-249
5.`|25[0-5]` -> Or any number 250-255
6.`[.]?` -> With or without a `.`
7.`{4}` -> Lines 1-6 exactly 4 times
Cela n'a pas échoué mon encore pour l'adresse IP validation.
Pour votre cas, cela devrait le faire:
(169\.254\.)((([0-9](?!\d)|[1-9][0-9](?!\d)|1[0-9]{2}|2[0-4][0-9]|25[0-4])[.])(([0-9](?!\d)|[1-9][0-9](?!\d)|1[0-9]{2}|2[0-4][0-9]|25[0-5])))
Ceci est très long parce que je ne pouvais pas comprendre comment obtenir 169.254 (0-254) 0,255 pour vérifier sans se 169,254.. 255,1 à l'échec
Edit: Correction en raison de commentaires
son correspondant 169.254.25 pour 169.254.255.1. Des pensées? – user1789564
Je voudrais répéter le test deux fois, avec le chiffre final sur la 2ème section changé en 5 pour le match 255: '169 \ .254 \. ([0-9] | [1-9] [0-9] | 1 [0-9] [0-9] | 2 [0-4] [0-9] | 25 [0-4]) \. ([0-9] | [1-9] [0-9] | 1 [0-9] [0-9] | 2 [0-4] [0-9] | 25 [0-5]) ' – SeanC
merci beaucoup, celui-ci semble bien fonctionner. – user1789564