| Author |
Java Regex
|
Girish Havaldar
Greenhorn
Joined: Nov 01, 2010
Posts: 3
|
|
Hi,
I am new to Java Regex, i have a requirement in which i need to write java regex for validating ip address keeping in mind the below points.
Basically i need to validate the search key word, which a user enters.
1) IP-address notation dictates that is consists of 4 “dotted-decimals” – i.e. 4 “digit strings” that are separated by a “.” (dot).
Each dotted-decimal is between 1-3 digits long and value of a dotted-decimal number must be between 0-255 to be valid.
Example of valid IP-address notation: 0.0.0.0 or 1.2.3.4 or 23.34.45.56 or 255.255.255.255 (>256 is not valid)
2) Example of allowed inputs:
a) dotted-decimal: .1 or 1. (note: could be with or without leading/trailing “.” !)
b) dotted-decimals: 1.2 or .2.3 or .2.3. or .3.4 (note: could be with or without leading/trailing “.” !)
c) dotted-decimals: 1.2.3 or 1.2.3. or .2.3.4 (note: could be with or without leading/trailing “.” !)
d) dotted-decimals: 1.2.3.4 (note: could be with or without leading/trailing “.” !)
Need Regex pattern for the above.
Thanks in Advance.
Regards,
Girish
|
 |
Mohamed Sanaulla
Bartender
Joined: Sep 08, 2007
Posts: 2927
|
|
These two articles will be of help- Lesson: Regular Expressions and Regular Expressions and the Java Programming Language
The second article is concise.
|
Mohamed Sanaulla | My Blog
|
 |
Girish Havaldar
Greenhorn
Joined: Nov 01, 2010
Posts: 3
|
|
Thanks Mohamed,
since the conditions are very confusing, can you give me some hint on how to proceed.
|
 |
Campbell Ritchie
Sheriff
Joined: Oct 13, 2005
Posts: 32689
|
|
Welcome to the Ranch
The conditions for a valid IP address are actually very simple, and you have already described them.
Not sure how you manage not greater than 255, however.
|
 |
Wouter Oet
Saloon Keeper
Joined: Oct 25, 2008
Posts: 2700
|
|
I would not use regex to evaluate an ip address. Well I am but only because there is no other standard way:
Split the ip on the "." You'll have to use "\\." because the argument is a regex pattern and the dot needs to be escaped.
Parse every segment to an int and check its value.
(Are you keeping IPv6 in mind?)
|
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." --- Martin Fowler
Please correct my English.
|
 |
T Dahl
Ranch Hand
Joined: Oct 07, 2010
Posts: 35
|
|
Campbell Ritchie wrote:Not sure how you manage not greater than 255, however.
group() method of Matcher to extract each octet, then Integer.parseInt to check that the octet is in the right range.
|
 |
 |
|
|
subject: Java Regex
|
|
|