Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
getting the results of a simple regex
Raimon Fs
4/6/2009 5:13:00 PM
Hello,
I'm playing for my very first time with Regex ...
I want to split some numbers, and get their results:
Given this string:
18,04 2,89 20,93 2,71 18,22
I want to get every number before a comma, and two digits later, and all
the groups.
I think it should work this way but I can only get the first result ...
/(\d+,\d{2})/ =~ "18,04 2,89 20,93 2,71 18,22"
=> 0
>> $1
=> "18,04"
>> $2
=> nil
>> $3
=> nil
>> $4
=> nil
>> $5
=> nil
Playing with the
http://www.ru...
I can get the result that I
want ...
I also tried the Regexp.last_match but I'm getting the same, only the
first value ...
what I'm doing wrong ?
thanks!
r.
--
Posted via
http://www.ruby-...
.
2 Answers
Robert Klemme
4/6/2009 6:27:00 PM
0
On 06.04.2009 19:12, Raimon Fs wrote:
> Hello,
>
>
> I'm playing for my very first time with Regex ...
>
> I want to split some numbers, and get their results:
>
> Given this string:
>
> 18,04 2,89 20,93 2,71 18,22
>
> I want to get every number before a comma, and two digits later, and all
> the groups.
>
> I think it should work this way but I can only get the first result ...
>
>
> /(\d+,\d{2})/ =~ "18,04 2,89 20,93 2,71 18,22"
> => 0
>>> $1
> => "18,04"
>>> $2
> => nil
>>> $3
> => nil
>>> $4
> => nil
>>> $5
> => nil
>
>
> Playing with the
http://www.ru...
I can get the result that I
> want ...
>
> I also tried the Regexp.last_match but I'm getting the same, only the
> first value ...
>
> what I'm doing wrong ?
You do not use String#scan. :-)
Btw, you do not need the grouping as you want the complete match anyway.
Kind regards
robert
Raimon Fs
4/6/2009 6:39:00 PM
0
Robert Klemme wrote:
> On 06.04.2009 19:12, Raimon Fs wrote:
>>
>>>> $2
>> want ...
>>
>> I also tried the Regexp.last_match but I'm getting the same, only the
>> first value ...
>>
>> what I'm doing wrong ?
>
> You do not use String#scan. :-)
=> var="18,04 2,89 20,93 2,71 18,22"
>> a=var.scan(/\d+,\d{2}/)
=> ["18,04", "2,89", "20,93", "2,71", "18,22"]
>> a[0]
=> "18,04"
>> a[1]
=> "2,89"
>> a[2]
=> "20,93"
>> a[3]
=> "2,71"
>> a[4]
=> "18,22"
:-)
thanks ....
>
> Btw, you do not need the grouping as you want the complete match anyway.
I was grouping with () because I was using:
line =~
%r{(\d+,\d{2})(\s)(\d+,\d{2})(\s)(\d+,\d{2})(\s)(\d+,\d{2})(\s)(\d+,\d{2})}
and then $1, $2, $3, $4, ...
thanks for your help!
regards,
r.
--
Posted via
http://www.ruby-...
.
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
getting the results of a simple regex
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password