File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
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 Head First Android this week in the Android forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Java Regex" Watch "Java Regex" New topic

Java Regex

Girish Havaldar

Joined: Nov 01, 2010
Posts: 3
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: or or or (>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: (note: could be with or without leading/trailing “.” !)

Need Regex pattern for the above.

Thanks in Advance.



Mohamed Sanaulla
Saloon Keeper

Joined: Sep 08, 2007
Posts: 3151

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

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

Joined: Oct 13, 2005
Posts: 43350
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.
I agree. Here's the link:
subject: Java Regex
It's not a secret anymore!