IPv4の
再インポート #単純なマッチング文字列特定のIPアドレス、次の例では、それはIPv4アドレスであるか否かが、正規表現 IF re.match(R&LT " ^(?:[0-9] {1、。 } 3 \){} 3 [0-9] {1,3} $。。。" " 272.168,1,1 " ): 印刷する" IP vaild " 他: 印刷" のIP invaild " #は、正確な指定された文字と一致します文字列は、IPアドレスであるかどうかを IF re.match(R " ?2 [0-4] [0-9] | | [01] [0-9] [0〜25 [0-5]:^(?:( 9])\){3}(?:25 [0-5] |?。2 [0-4] [0-9] | [01] [0-9] [0-9])$?"、" 223.168.1.1 " ): 印刷" IP vaild " 他: プリント:" IP invaild " 長い抽出のIPアドレスから抽出された#単純なテキスト string_ip =は" ?この289.22.22.22 IPです 結果= re.findall(R&LT " \ Bは(?:[0-9] 1,3} {\ 。)3} {[0-9] 1,3} {\ B。"string_ip) IF 結果: 印刷結果他: プリント" 再IPを見つけることができません" #正確なIPの抽出 結果 = re.findall(R&LT " \ Bを( ?:(:25 [0-5] | 2 [0-4] [0-9] | [01] [0-9] [0-9])\){3}(25 ???。 [0-5] | 2 [0-4] [0-9] | [01] [0-9] [0-9])\ bの?? "string_ip): IF 結果: 結果を印刷し、他の 印刷" IPを見つけることができません再
IPv6の正規表現の一致
= string_IPv6 " 1050:0:0:0:。5:600:300C:326B " #一致がIPv6形式の要件を満たし、その例ケースに鈍感ご注意ください IF re.match(R&LT " ^(?:[-F0 -9] {1,4} :)} 7 {[A-F0-9] {1,4} $。"string_IPv6、re.I): プリント" IPv6のvaild " 他: 印刷" のIPv6 invaild 「 #1のIPv6抽出物大文字と小文字を区別しないで実施例 の結果 = re.findall(R&LT 」(<![:\ W])(?:[A-F0-9] {1,4} :)} 7 {[A-F0 -9] {1,4}([:!。\ W])" 、string_IPv6、re.I) #印刷抽出結果の 印刷結果
参考:
https://www.cnblogs.com/brogong/p/7929298.html