IPアドレス正規表現パターン

^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.
([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$

説明

^       #start of the line
 (      #  start of group #1
  [01]?\\d\\d? #    Can be one or two digits. If three digits appear, it must start either 0 or 1
        #    e.g ([0-9],[0-9][0-9],[0-1][0-9][0-9])
    |       #    ...or
   2[0-4]\\d    #    start with 2, follow by 0-4 and end with any digit (2[0-4][0-9])
    |           #    ...or
   25[0-5]     #    start with 2, follow by 5 and ends with 0-5 (25[0-5])
 )      #  end of group #2
  \.            #  follow by a dot "."
....            # repeat with 3 times (3x)

$#線の終わり

全体の組み合わせの意味は、0〜255の数字と “。”
4回リピートし、ドットなしで終わる “。”有効なIPアドレス形式は
“0-255.0-255.0-255.0-255″。

1. Javaの正規表現の例

IPAddressValidator.java

パッケージcom.mkyong.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
パブリッククラスIPAddressValidator {
    
    プライベートパターンパターン。
    プライベートMatcher matcher;
 
    プライベートstatic final String IPADDRESS__PATTERN =
        "^([01]?\\ d \\ d?2[0-4]\\ d | 25[0-5])\\。 +
        "([01]?\\ d \\ d?2[0-4]\\ d | 25[0-5])\\。 +
        "([01]?\\ d \\ d?2[0-4]\\ d | 25[0-5])\\。 +
        "([01]?\\ d \\ d?2[0-4]\\ d | 25[0-5])$";
      
    public IPAddressValidator(){
      pattern = Pattern.compile(IPADDRESS__PATTERN);
    }
      
  /** **
    ** 正規表現でIPアドレスを検証する
    **  @param検証のためのip ip address
    **  @return真の有効なIPアドレス、偽の無効なIPアドレス
    ** /    public boolean validate(final String ip){
      matcher = pattern.matcher(ip);
      return matcher.matches();
    }
}

2.一致するIPアドレス:

{空} 1。 “1.1.1.1”、 “255.255.255.255”、 “192.168.1.1”、+
「10.10.1.1」、「132.254.111.10」、「26.10.2.10」、
3. “127.0.0.1”

3.一致しないIPアドレス:

{空} 1。 “10.10.10” – 4インチを持つ必要があります。 “+
2. “10.10” – 4インチを持つ必要があります。 “+
3. “10” – 4インチを持つ必要があります。 “+
4.「a.a.a.a」 – 数字のみが許可されています+
5. “10.0.0.a” – 数字のみが許可されています+
6. “10.10.10.256” – 数字は[0-255]+
7. “222.222.2.999” – 数字は[0-255]〜
8. “999.10.10.20” – 数字は[0-255]+
9.「2222.22.22.22」 – 数字は[0-255]+
10.「22.2222.22.2」 – 数字は[0-255]
===ユニットテスト

IPAddressValidatorTest.java

パッケージcom.mkyong.regex;

import org.testng.Assert;
import org.testng.annotations。** ;
 /** **
 **  IPAddressバリデータのテスト
 **  @author mkyong
 **
 ** /パブリッククラスIPAddressValidatorTest {
 
    プライベートIPAddressValidator ipAddressValidator;
    
    @BeforeClass
        public void initData(){
        ipAddressValidator =新しいIPAddressValidator();
        }
    
    @DataProvider
    public Object[][]ValidIPAddressProvider(){}
        新しいオブジェクトを返す[][]{
           新しいObject[]{"1.1.1.1"}、新しいObject[]{"255.255.255.255"}、
                   新しいObject[]{"192.168.1.1"}、新しいObject[]{"10.10.1.1"}、
                   新しいObject[]{"132.254.111.10"}、新しいObject[]{"26.10.2.10"}、
           新しいObject[]{"127.0.0.1"}
        };
    }
    
    @DataProvider
    public Object[][]InvalidIPAddressProvider(){}
        新しいオブジェクトを返す[][]{
           新しいObject[]{"10.10.10"}、新しいObject[]{"10.10"}、
                   新しいObject[]{"10"}、新しいObject[]{"a.a.a.a"}、
                   新しいObject[]{"10.0.0.a"}、新しいObject[]{"10.10.10.256"}、
           新しいObject[]{"222.222.2.999"}、新しいObject[]{"999.10.10.20"}、
                   新しいObject[]{"2222.22.22.22"}、新しいObject[]{"22.2222.22.2"}、
                   新しいObject[]{"10.10.10"}、新しいObject[]{"10.10.10"}、
        };
    }
    
    @Test(dataProvider = "ValidIPAddressProvider")
    public void ValidIPAddressTest(String ip){
           ブール値valid = ipAddressValidator.validate(ip);
           System.out.println( "IPAddressは有効です:" + ip + "、" + valid ");
           Assert.assertEquals(true、valid);
    }
    
    @Test(dataProvider = "InvalidIPAddressProvider"、
                 dependsOnMethods = "ValidIPAddressTest")
    public void InValidIPAddressTest(String ip){
           ブール値valid = ipAddressValidator.validate(ip);
           System.out.println( "IPAddressは有効です:" + ip + "、" + valid ");
           Assert.assertEquals(false、valid);
    }
}

5.ユニットテスト – 結果

IPAddressが有効:1.1.1.1、true IPAddressが有効:255.255.255.255、true IPAddressが有効:192.168.1.1、true IPAddressが有効:10.10.1.1、true IPAddressが有効:132.254.111.10、true IPAddressが有効:26.10 10.10、false IPAddressが有効:10.10、false IPAddressが有効:10、false IPAddressが有効:aaaa、false IPAddressが有効:10.0.0、true IPAddressが有効:127.0.0.1、true IPAddressが有効:10.10.10、 .A、false IPAddressが有効:10.10.10.256、false IPAddressが有効:222.222.2.999、false IPAddressが有効:999.10.10.20、false IPAddressが有効:2222.22.22.22、false IPAddressが有効:22.2222.22.2、false PASSED :ValidIPAddressTest([Ljava.lang.String; @ 1d4c61c)PASSED:InValidIPAddressTest([Ljava.lang.String; @ 116471f)

=========================================

com.mkyong.regex.IPAddressValidatorTest
    テスト実行:2、失敗:0、スキップ:0
=========================================

=========================================

ミキョン
実行されたテストの合計:2、失敗:0、スキップ:0
=========================================