Here's a code snippet:
pattern = "\\b[A-Z]([A-Z0-9]|([+-_/&](?=[A-Z0-9])))+\\b";
p = Pattern.compile(pattern);
p finds a match on F1.3 . For the life of me I can't understand how the
period is being sucked through. It seems to me it ought find F1 . Can
someone explain to me what's happening?
Thanks.
job-271842874@craigslist.org - 23 Feb 2007 16:19 GMT
> Here's a code snippet:
> pattern = "\\b[A-Z]([A-Z0-9]|([+-_/&](?=[A-Z0-9])))+\\b";
[quoted text clipped - 4 lines]
> period is being sucked through. It seems to me it ought find F1 . Can
> someone explain to me what's happening?
\b
> Thanks.
John W. Kennedy - 23 Feb 2007 21:13 GMT
> Here's a code snippet:
> pattern = "\\b[A-Z]([A-Z0-9]|([+-_/&](?=[A-Z0-9])))+\\b";
[quoted text clipped - 4 lines]
> period is being sucked through. It seems to me it ought find F1 . Can
> someone explain to me what's happening?
[+-_/&] is equivalent to
[+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_/&]
Use [-+_/&] instead. (This is not a specifically Java problem -- the
same thing would be true in Perl or Ruby or Awk or grep.)

Signature
John W. Kennedy
"The blind rulers of Logres
Nourished the land on a fallacy of rational virtue."
-- Charles Williams. "Taliessin through Logres: Prelude"