# Regualr Expression Puzzle

Discussion in 'Java' started by Ken, Feb 21, 2007.

1. ### KenGuest

Here's my pattern: "\\b[A-Z]([A-Z0-9]|([+-_/&](?=[A-Z0-9])))+\\b"

This pattern finds the string F1.3 . For the life of me I can't figure
out how the dot gets sucked in. Seems like it should find F1 . Can
someone explain?

Ken
Ken, Feb 21, 2007

2. ### BenGuest

Ken wrote:
> Here's my pattern: "\\b[A-Z]([A-Z0-9]|([+-_/&](?=[A-Z0-9])))+\\b"
>
> This pattern finds the string F1.3 . For the life of me I can't figure
> out how the dot gets sucked in. Seems like it should find F1 . Can
> someone explain?
>
> Ken
>

"[+-_/&]" is the set '+' to '_' plus '/' plus '&'. I'm not sure what you
are doing but you probably mean "[-+_/&]" .
Ben, Feb 21, 2007

3. ### Oliver WongGuest

"Ken" <> wrote in message
news:...
> Here's my pattern: "\\b[A-Z]([A-Z0-9]|([+-_/&](?=[A-Z0-9])))+\\b"
>
> This pattern finds the string F1.3 . For the life of me I can't figure
> out how the dot gets sucked in. Seems like it should find F1 . Can
> someone explain?

Did you mean:

"\\b[A-Z]([A-Z0-9]|([+\\-_/&](?=[A-Z0-9])))+\\b"

?

- Oliver
Oliver Wong, Feb 21, 2007
4. ### ultimadjGuest

On Feb 21, 11:18 am, "Ken" <> wrote:
> Here's my pattern: "\\b[A-Z]([A-Z0-9]|([+-_/&](?=[A-Z0-9])))+\\b"
>
> This pattern finds the string F1.3 . For the life of me I can't figure
> out how the dot gets sucked in. Seems like it should find F1 . Can
> someone explain?
>
> Ken

Hey Ken,
The period character is 0x46. In your expression, you stated '[+-_'
which means "match any character between '+' (0x43) and '_' (0x95)".
Since '.' (0x46) is within this range, it gets matched. '-' and '+'
should be escaped, though switching the order like Oliver did
obviously works as well.

Here's a great resource for understanding how the regex engines work:
http://www.regular-expressions.info

If this is helpful, please rate my post.

avid
ultimadj, Feb 21, 2007

### Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.