How to validate an IP address using Regular Expressions in Java
The IP address is a string in the form “A.B.C.D”, where the value of A, B, C, and D may range from 0 to 255. Leading zeros are allowed. The length of A, B, C, or D can’t be greater than 3.
Examples:
Input: str = "000.12.12.034" Output: True Input: str = "000.12.234.23.23" Output: False Input: str = "121.234.12.12" Output: True Input: str = "I.Am.not.an.ip" Output: False
Approach:
In this article, the IP address is validated with the help of Regular Expressions or Regex. Below are the steps to solve this problem using ReGex:
- Get the string.
- Regular expression to validate an IP address:
// ReGex to numbers from 0 to 255 zeroTo255 -> (\\d{1, 2}|(0|1)\\d{2}|2[0-4]\\d|25[0-5]) // ReGex to validate complete IP adress IPAddress -> zeroTo255 + "\\." + zeroTo255 + "\\." + zeroTo255 + "\\." + zeroTo255;
- \d represents digits in regular expressions, same as [0-9]
- \\d{1, 2} catches any one or two-digit number
- (0|1)\\d{2} catches any three-digit number starting with 0 or 1.
- 2[0-4]\\d catches numbers between 200 and 249.
- 25[0-5] catches numbers between 250 and 255.
- Match the string with the Regex. In Java, this can be done using Pattern.matcher().
- Return true if the string matches with the given regex, else return false.
// Java program to validate an IP address
// using Regular Expression or ReGex
import java.util.regex.*;
class IPAddressValidation {
// Function to validate the IPs address.
public static boolean isValidIPAddress(String ip)
{
// Regex for digit from 0 to 255.
String zeroTo255
= "(\\d{1,2}|(0|1)\\"
+ "d{2}|2[0-4]\\d|25[0-5])";
// Regex for a digit from 0 to 255 and
// followed by a dot, repeat 4 times.
// this is the regex to validate an IP address.
String regex
= zeroTo255 + "\\."
+ zeroTo255 + "\\."
+ zeroTo255 + "\\."
+ zeroTo255;
// Compile the ReGex
Pattern p = Pattern.compile(regex);
// If the IP address is empty
// return false
if (ip == null) {
return false;
}
// Pattern class contains matcher() method
// to find matching between given IP address
// and regular expression.
Matcher m = p.matcher(ip);
// Return if the IP address
// matched the ReGex
return m.matches();
}
// Driver code
public static void main(String args[])
{
// Checking for True case.
// Test Case: 1
System.out.println("Test Case 1:");
String str1 = "000.12.12.034";
System.out.println("Input: " + str1);
System.out.println(
"Output: "
+ isValidIPAddress(str1));
// Test Case: 2
System.out.println("\nTest Case 2:");
String str2 = "121.234.12.12";
System.out.println("Input: " + str2);
System.out.println(
"Output: "
+ isValidIPAddress(str2));
// Checking for False case.
// Test Case: 3
System.out.println("\nTest Case 3:");
String str3 = "000.12.234.23.23";
System.out.println("Input: " + str3);
System.out.println(
"Output: "
+ isValidIPAddress(str3));
// Test Case: 4
System.out.println("\nTest Case 4:");
String str4 = "I.Am.not.an.ip";
System.out.println("Input: " + str4);
System.out.println(
"Output: "
+ isValidIPAddress(str4));
}
}
Output:
Test Case 1: Input: 000.12.12.034 Output: true Test Case 2: Input: 121.234.12.12 Output: true Test Case 3: Input: 000.12.234.23.23 Output: false Test Case 4: Input: I.Am.not.an.ip Output: false
No comments:
Post a Comment
Your feedback is highly appreciated and will help us to improve our content.