Help with Regular Expressions in Java

sssrsl's Avatar
Light Poster

I need to check for a PO Box addresses in a string. I should not allow a pobox in a address Line. For that I need a pattern and willl match this pattern with my string

Ex:***** something like this ******
Pattern poBoxPattern = Pattern.compile("\\bp\\s*\\d") ....
Matcher matcher = poBoxPattern.matcher(locationAddressStreet);


So, could anyone help me with making the pattern.
My pattern should recognize sub strings like...
1. po 123 ( meaning: po followed by any integer/integers )
2. p o 123
3. p.o. 123
4. p. o. 123
5. po box
6. po box
7. p o box
8. p o 123

Note: "po sometext" or "p o sometext" should not be recognized.

Any help is truly appreciated.

pradeep's Avatar, Join Date: Apr 2005
Team Leader
Try this pattern

p[. ]?o([. ]+)?(\d+)
sssrsl's Avatar
Light Poster
Perfect!! Thanks Pradeep!!

Customized it a little to suit my requirements.

Thanks again

sssrsl's Avatar
Light Poster
Sorry :-( Forgot to add the pattern. Might be useful to others

"p[. ]?o([. ]+)?(\\d+)|\\bpo\\s*box\\b"