[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

regex quick ? solved, actually, move along.

Simon Schuster

8/16/2007 11:15:00 PM

afile = "2007-08-10.152314-0700PDT.txt"

some notes about it, is that the first part before the . is date, and
subject to change, the second I thought was an arbitrary id for logs
of the same day, but it's a timestamp, and the "-0700PDT.txt" is
always the same per log per day and can be cut out as such. The date,
as well, can be discarded. I'm just looking to isolate, and then
parse, the "152314" in this case.

this is as far as I've gotten:
089:0> afile.split(/^\d+-\d+-\d+./)
["", "152314-0700PDT.txt"]

nevermind I just figured out I could do:
afile.scan(/\d\d\d\d\d\d/)
["152314"]

having taken the time to formulate the question though I'm just going
to send it because you people are so nice I want to give any little
bit I've got. :)

2 Answers

David A. Black

8/16/2007 11:41:00 PM

0

Robert Klemme

8/17/2007 11:10:00 AM

0

2007/8/17, Simon Schuster <significants@gmail.com>:
> afile = "2007-08-10.152314-0700PDT.txt"
>
> some notes about it, is that the first part before the . is date, and
> subject to change, the second I thought was an arbitrary id for logs
> of the same day, but it's a timestamp, and the "-0700PDT.txt" is
> always the same per log per day and can be cut out as such.

That bit looks like a time zone offset with the name ("PDT" which is
"Pacific Daylight Savings Time" IIRC).

> The date,
> as well, can be discarded. I'm just looking to isolate, and then
> parse, the "152314" in this case.
>
> this is as far as I've gotten:
> 089:0> afile.split(/^\d+-\d+-\d+./)
> ["", "152314-0700PDT.txt"]
>
> nevermind I just figured out I could do:
> afile.scan(/\d\d\d\d\d\d/)
> ["152314"]
>
> having taken the time to formulate the question though I'm just going
> to send it because you people are so nice I want to give any little
> bit I've got. :)

If you want to be really sure you parse the name that you expect you can do

irb(main):001:0> afile = "2007-08-10.152314-0700PDT.txt"
=> "2007-08-10.152314-0700PDT.txt"
irb(main):002:0> afile[/^\d{4}-\d{2}-\d{2}\.(\d{6})-\d{4}[A-Z]+\.txt$/, 1]
=> "152314"

Kind regards

robert