본문 바로가기
Programming

[ 정규표현식 ] 정규표현식 IPv4 | 정규표현식 아이피 정보

by 코뮤(commu) 2021. 9. 28.
728x90
반응형

 

실습을 진행한 사이트는 아래 링크와 같다.

 

 

https://regexr.com/

 

RegExr: Learn, Build, & Test RegEx

RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).

regexr.com

 

 

 

 

 

 

 

정규표현식 코드는 아래와 같다.

 

 

/^(([1-9]?\d|1\d{2}|2([0-4]\d)|25[0-5])\.){3}([1-9]?\d|1\d{2}|2([0-4]\d)|25[0-5])$/

 

 

 

자리수 단위로 나눠서 코드를 작성했는데,

반복되는 부분은 숫자와 . 이다.

 

 

여기서 . 은 정규표현식에서 한 문자를 나타내는 규칙과도 같기 때문에,

문자 그대로의 . 을 사용하기 위해 앞에 백슬래쉬(\)를 붙여주었다.

 

 

크게 고려해야할 부분은 세자리수 이상부터이다.

 

한자리수 숫자와 두자리수 숫자는 아래 패턴 하나로 설명 가능하다.

 

 

[1-9]?\d

 

 

01.01.01.01 과 같은 Ip는 존재하지 않는다.

 

 

만약 두자리수라면, 무조건 앞은 1-9 까지의 범위를 가져야만한다.

 

세자리수는 앞자리가 1로 시작하는 수와 2로 시작하는 수로 나눠서 경우를 생각한다.

 

 

1로 시작한다면 뒤에 어떤 숫자가 오든 상관이 없기때문에

아래와 같이 작성했다.

 

1\d{2}

 

 

 

2로 시작한다면, 십의 자리 수는 5까지만 허용된다.

 

십의 자리수도 0-4까지의 수는 뒤에 어떤 숫자가 오든지 상관없다.

 

그렇기 때문에 아래와 같이 작성한다.

 

2[0-4]\d

 

 

이제 마지막으로, 십의 자리 수가 5일 때의 경우를 생각해보자.

 

Ip는 최대 255까지 들어간다.

 

그렇기 때문에 십의 자리수가 5일때는 일의 자리 숫자는 0-5까지의 범위를 가질 수 밖에 없는 것이다.

 

 

25[0-5]

 

그래서 위와 같이 작성했다.

 

숫자가 오고 . 이 오는 패턴은 총 세번 반복되고, 이 반복이 끝나면 다시 한번 숫자가 온 후 IP는 끝이 나게 된다.

 

 

 

 

 

728x90
반응형