File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Java in General and the fly likes Regular expression question Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Soft Skills this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Regular expression question" Watch "Regular expression question" New topic
Author

Regular expression question

Payam Fard
Ranch Hand

Joined: Jan 31, 2003
Posts: 73
Hi all,
Does anyone see any problems with the following
regular _expression?
[(\\(\\d{3}\\)[-]?\\d{3}[-]?\\d{4})?][(\\d{3}[-]?\\d{3}[-]?\\d{4})?]
The first [] is supposed to detect (123)456-7890 and
the second [] is supposed to detect 123-456-7890 where
also 1234567890 is valid.
It is also a bit forgiving, if you mistype it as:
123-4567890, it would take it.
First [] and second [] work fine separatley, but as
soon as I put them together to create an OR, I get a
parse exception.
Any clues as to why?
Thanks
Payam.
Jason Menard
Sheriff

Joined: Nov 09, 2000
Posts: 6450
Try this (I made the assumption that the phone number should be the only thing in the string):
^\\(?\\d{3}\\)?-?\\d{3}-?\\d{4}$
This will match for a ten digit sequence with or without parenthesis around the area code, and with or without dashes after the area code and exchange.
[ January 31, 2003: Message edited by: Jason Menard ]
Jim Yingst
Wanderer
Sheriff

Joined: Jan 30, 2000
Posts: 18671
See also this thread for some other patterns with slightly different behavior. As for what's wrong with your attempt here...
First [] and second [] work fine separatley, but as soon as I put them together to create an OR, I get a parse exception.
How exactly do you "put them together to create an OR"? Do you include all the [ and ] characters as shown? (This would be interpreted as a character class, which probably is not what you want here.) Do you just put the two expressions next to each other, as show (which represents a sequence, not an OR) or do you include a | to represent an OR?
[ January 31, 2003: Message edited by: Jim Yingst ]

"I'm not back." - Bill Harding, Twister
Payam Fard
Ranch Hand

Joined: Jan 31, 2003
Posts: 73
Jason,
Thanks for your reply. It works fine.
Jim,
I was trying to creating an or. I was putting them together as shown. Could you please let correct me on oring the two expressions together?
Thanks again,
Payam.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Regular expression question