wood burning stoves*
The moose likes Beginning Java and the fly likes Java Regex Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCA/OCP Java SE 7 Programmer I & II Study Guide this week in the OCPJP forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Java Regex" Watch "Java Regex" New topic
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
Saloon Keeper

Joined: Sep 08, 2007
Posts: 3071
    
  33

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: 39478
    
  28
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.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
 
subject: Java Regex