正規表現-IP、ドメイン名の一致

1221 ワード

IP
IPは4つのセグメントからなり、各セグメントは0-255の数字であり、セグメントとセグメントの間は小数点で隔てられており、例えば192.168.1.1は合法的なIPアドレスである.
正規表現をd{1,3}(.d{1,3}){3}と書くと、300.400.55.666のような不正なIP文字列に一致するため、責任を負わないに違いない.
0~255の数を一致させるには、いくつかの一致方法があります.次のいずれかです.
マッチ
正規表現
説明
0-9
d
単一の数値
10-99
[1-9]d
2桁の数
100-199
1dd
100桁が1の3桁
200-249
2[0-4]d
3桁、100桁は2、10桁は0-9
250-255
25[0-5]
三桁、百位は2、十位は5、個位は0-5
(xxx|yy)このようなマッチング動作では、(d|([1-9]d)|(1 dd)|(2[0-4]d)|(25[0-5]))と書くが、このような正規表現は254のような文字列をマッチングすると、それぞれ2、5、4にマッチングし、3つのマッチングが得られ、予想される効果に達しず、順序を逆にするのが正しい.左から右へ検索しました.
完全な正規表現は、((25[0-5])|(2[0-4]d)|(1dd)|([1-9]d)|d)(.((25[0-5])|(2[0-4]d)|(1dd)|([1-9]d)|d)){3}です.
ドメイン名
1つの完全なドメイン名、ルートドメイン名、トップドメイン名、2級、3級......ドメイン名から構成され、各ドメイン名の間に点で分けられ、各ドメイン名はアルファベット、数字、マイナス記号から構成され(最初のアルファベットはマイナス記号ではいけない)、大文字と小文字を区別せず、長さは63文字を超えない.
単独の名前は正規表現[a-zA-Z 0-9][a-zA-Z 0-9]{0,62}で一致することが明らかであり、完全なドメイン名は少なくとも2つの名前(例えばgoogle.com、googleとcomから構成される)を含む.最後にルートドメインを表すポイントを1つ持つことができます(仕様では、最後にもう1つのポイントが完全ドメイン名ですが、2つ以上の名前を含むドメイン名も完全ドメイン名であり、後ろにポイントがなくても完全ドメイン名であると考えられています).
完全なドメイン名に一致する正規表現:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.?