Robert Klemme
7/16/2007 12:49:00 PM
2007/7/16, Robert Klemme <shortcutter@googlemail.com>:
> 2007/7/16, Joe Nciri <dev@logixcel.com>:
> > a have a line to parse....
> >
> > 10.88.90.75 - - [16/Jul/2007:07:46:09 -0400] "GET /star/images/main.gif
> > HTTP/1.1" 200 334
> >
> >
> > anyone has a better idea... got stuck coming up with one simple regex (
> > the double quote...) Need to tokenize the line,
> >
> > token 1 = 10.88.90.75
> > token 2 = -
> > token 3 = -
> > token 4 = [16/Jul/2007:07:46:09 -0400]
> > token 5 = "GET /star/images/main.gif HTTP/1.1"
> > token 6 = 200
> > token 7 = 234
> >
> >
> > can some one help please.
>
> Try this as a starting point:
>
> line.scan %r{
> \S+
> | \[[^\]]*\]
> | "[^"]*"
> }x
>
> (untested)
I think I got the order wrong. Rather do
line.scan %r{
\[[^\]]*\]
| "[^"]*"
| \S+
}x
Or do an explicit parse like the one Aur suggested.
Kind regards
robert