IPv6アドレスをより妥当な正規表現でマッチする。スマートフォン用の表示で見る設計と実装の狭間で。この広告は、90日以上更新していないブログに表示しています。2011-01-12IPv6アドレスをより妥当な正規表現でマッチする。Validationと言うサイトがあります。IPv6アドレスとして妥当かチェックしてくれる上に、RFC5952に則った表記を教えてくれます。ここでは正規表現によってIPv6アドレスとして正しいか評価しています。それは、以下のような正規表現です。IPv6アドレスをマッチする。圧縮済みIPv6アドレスでもマッチするIPv4アドレスが含まれていてもマッチするリンクローカルアドレスを識別する為のインターフェース名が含まれていてもマッチする((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$何か凄い量ですね。以下、理解し易くする為にフォーマットしてみました。正規表現の理解が難しい機能や、複雑な表現は全く使っていない事が分かります。17:05IPv6アドレスをより妥当な正規表現でマッチする。Tweet広告を非表示にする関連記事2011-01-06IPv6Addressを正規表現でマッチする。正しい正規表現を別なエントリとして記述しました。IPv6ア...2009-02-13logbackで設定を記述する時の注意事項等。