On Sat, Jun 4, 2011 at 01:16, Eli Barzilay <[email protected]> wrote:
> [...] > > > > So then how useful are groups? Only to re-match them? > > Like "(quack)\\1"... > > No, you get the groups results when you do a simple `regexp-match'. > It just happens that `regexp-match*' was made to return the complete > matches, it could have returned the subgroups too. Like I said, it > could be added -- but every use that I've seen was one that got more > benefit from restructuring the code differently. (As is in your > case.) > I think I didn't understand well when I would use `regexp-match' with groups. It seems to return only the first match (as I expect) and the subgroups come as the last elements of the list. Since I want to find all the occurrences of a pattern, it seemed to me `regexp-match*' was more appropriate. > > > > > -> (read (open-input-string "3.129e+01")) > > > 31.29 > > Actually, I should have used the easier answer: > > (string->number "3.129e+01") > I think it's time for me to go to sleep... string->number would definitely do, much better, thanks. > > > > And is there a way to integrate that with reading the output from > > the regexp? Something like a "scanf"? > > I'm not sure that I'm following that, but you could just do something > like this: > > -> (map string->number (regexp-match* #rx"[^ ]+" "1.23 4e2")) > '(1.23 400.0) > > Well, that's not what I need, because I would lose the notion of a "line". I want to do a "table filtering". The data is full of unuseful verbosity and I intend to grab just the numbers and sort by the last column :D For now I have (map parse-line (regexp.... )) where parse-line maps string->number to a single line. I can get along without removing columns, but anyway I don't see now a clean way to filter-out some columns without writing dirty code :D
_________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

