이식성이 가장 뛰어나며 작성하기가 쉽고 유지 관리가 가장 쉽습니다.
\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
이
에만 유효 IP 주소와 일치 플러스 추가 검사
if (int(group[1]) != 224 and (int(group[1]) != 0 or int(group[2]) != 0 or int(group[3]) != 0 or int(group[4]) != 0) ...
정규식 "가 아니라"작업에서 너무 좋지 않아 각 부분을 분할합니다.
하지만 하나의 정규식으로 사용하려면 모든 올바른 옵션을 열거하십시오. 완벽하지
\b(25[0-5]|2[0134][0-9]|22[0-35-9]|1[0-9][0-9]?|[2-9][0-9]|[2-9])
\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
... 그것은 단지 당신이 0.0.0.0에 대한 전체 테스트를하려면 첫 번째 8 진수는 다음 위의 15 배를 재현해야합니다 (224) 또는 0 아님을 테스트하기 때문에 적어도 하나의 옥텟이 0이 아닌 모든 조합을 인식한다.
그리고 당연히 테스트를 작성하여 40 억 가지 조합에 대한 정답을 반환하도록을 작성하십시오. 실행하기에는 너무 오래 걸릴 필요가 없습니다. ;-)
'.'로 나누면 각 요소를 테스트하는 것이 더 쉬울 것입니다. – Toto
분할하는 것은 무엇을 의미합니까? ? 죄송합니다 내가 상당히 정규식에 새로운이야 – Oli
나는 IP 주소의 4 요소를 분리 의미. – Toto