Hi,
/(\d+),(\d+)(;(\d+),(\d+))*/
This regexp matches are:
0: (5,1;5,7;3,2)
1: (5)
2: (1)
3: (;3,2)
4: (3)
5: (2)
My question is why ;5,7 is not matched ?
Thanks,
Mickael.
···
--
Posted via http://www.ruby-forum.com/.
Hi,
/(\d+),(\d+)(;(\d+),(\d+))*/
This regexp matches are:
0: (5,1;5,7;3,2)
1: (5)
2: (1)
3: (;3,2)
4: (3)
5: (2)
My question is why ;5,7 is not matched ?
Thanks,
Mickael.
--
Posted via http://www.ruby-forum.com/.
Hi --
On Wed, 28 Jan 2009, Mickael Faivre-Macon wrote:
Hi,
/(\d+),(\d+)(;(\d+),(\d+))*/
This regexp matches are:
0: (5,1;5,7;3,2)
1: (5)
2: (1)
3: (;3,2)
4: (3)
5: (2)My question is why ;5,7 is not matched ?
What's the string?
David
--
David A. Black / Ruby Power and Light, LLC
Ruby/Rails consulting & training: http://www.rubypal.com
Coming in 2009: The Well-Grounded Rubyist (http://manning.com/black2\)
http://www.wishsight.com => Independent, social wishlist management!
Mickael
Because it matches ;5,7 first and then overwrites $3,$4 & $5 with ;3,2 which
matches based on the '*'
On Wed, Jan 28, 2009 at 1:26 PM, Mickael Faivre-Macon <faivrem@gmail.com>wrote:
Hi,
/(\d+),(\d+)(;(\d+),(\d+))*/
This regexp matches are:
0: (5,1;5,7;3,2)
1: (5)
2: (1)
3: (;3,2)
4: (3)
5: (2)My question is why ;5,7 is not matched ?
Thanks,
Mickael.
--
Posted via http://www.ruby-forum.com/\.
--
Andrew Timberlake
http://ramblingsonrails.com
http://www.linkedin.com/in/andrewtimberlake
"I have never let my schooling interfere with my education" - Mark Twain
And is there a way to keep previous matching ?
Mickael.
Andrew Timberlake wrote:
On Wed, Jan 28, 2009 at 1:26 PM, Mickael Faivre-Macon > <faivrem@gmail.com>wrote:
5: (2)
My question is why ;5,7 is not matched ?
Thanks,
Mickael.
--
Posted via http://www.ruby-forum.com/\.Mickael
Because it matches ;5,7 first and then overwrites $3,$4 & $5 with ;3,2
which
matches based on the '*'--
Andrew Timberlake
http://ramblingsonrails.com
http://www.linkedin.com/in/andrewtimberlake"I have never let my schooling interfere with my education" - Mark Twain
--
Posted via http://www.ruby-forum.com/\.
What about tackling it from a completely different angle
s = "5,1;5,7;3,2"
pairs = s.split(';') #=> ["5,1", "5,7", "3,2"]
pairs.each do |pair|
pair.split(',') #=> ["5", "1"] etc
end
On Wed, Jan 28, 2009 at 5:00 PM, Mickael Faivre-Macon <faivrem@gmail.com>wrote:
And is there a way to keep previous matching ?
Mickael.Andrew Timberlake wrote:
> On Wed, Jan 28, 2009 at 1:26 PM, Mickael Faivre-Macon > > <faivrem@gmail.com>wrote:
>
>> 5: (2)
>>
>> My question is why ;5,7 is not matched ?
>>
>> Thanks,
>> Mickael.
>> --
>> Posted via http://www.ruby-forum.com/\.
>>
>>
> Mickael
>
> Because it matches ;5,7 first and then overwrites $3,$4 & $5 with ;3,2
> which
> matches based on the '*'
>
> --
> Andrew Timberlake
> http://ramblingsonrails.com
> http://www.linkedin.com/in/andrewtimberlake
>
> "I have never let my schooling interfere with my education" - Mark Twain--
Posted via http://www.ruby-forum.com/\.
--
Andrew Timberlake
http://ramblingsonrails.com
http://www.linkedin.com/in/andrewtimberlake
"I have never let my schooling interfere with my education" - Mark Twain
Andrew Timberlake wrote:
5: (2)
My question is why ;5,7 is not matched ?
Thanks,
Mickael.
--
Posted via http://www.ruby-forum.com/\.Mickael
Because it matches ;5,7 first and then overwrites $3,$4 & $5 with ;3,2
which
matches based on the '*'What about tackling it from a completely different angle
s = "5,1;5,7;3,2"
pairs = s.split(';') #=> ["5,1", "5,7", "3,2"]
pairs.each do |pair|
pair.split(',') #=> ["5", "1"] etc
end--
Andrew Timberlake
http://ramblingsonrails.com
http://www.linkedin.com/in/andrewtimberlake"I have never let my schooling interfere with my education" - Mark Twain
And is there a way to keep previous matching ?
Mickael.
--
re = /(\d+),(\d+)(;(\d+),(\d+))*/
=> /(\d+),(\d+)(;(\d+),(\d+))*/
s = "5,1;5,7;3,2"
=> "5,1;5,7;3,2"
s.match(re).captures
=> ["5", "1", ";3,2", "3", "2"]
You can wrap another set of parentheses in there:
re = /(\d+),(\d+)((;(\d+),(\d+))*)/
=> /(\d+),(\d+)((;(\d+),(\d+))*)/
s.match(re).captures
=> ["5", "1", ";5,7;3,2", ";3,2", "3", "2"]
But in addition to Andrew's split, you could use String#scan
s.scan(/(\d+),(\d+)/)
=> [["5", "1"], ["5", "7"], ["3", "2"]]
It all depends on what you're trying to accomplish.
-Rob
Rob Biedenharn http://agileconsultingllc.com
Rob@AgileConsultingLLC.com
On Jan 28, 2009, at 10:00 AM, Mickael Faivre-Macon wrote:
On Wed, Jan 28, 2009 at 1:26 PM, Mickael Faivre-Macon >> <faivrem@gmail.com>wrote:
Sure, that's what I've just done
Just wondering.
Thanks anyway.
Mickael.
Andrew Timberlake wrote:
On Wed, Jan 28, 2009 at 5:00 PM, Mickael Faivre-Macon > <faivrem@gmail.com>wrote:
>> My question is why ;5,7 is not matched ?
> which
Posted via http://www.ruby-forum.com/\.What about tackling it from a completely different angle
s = "5,1;5,7;3,2"
pairs = s.split(';') #=> ["5,1", "5,7", "3,2"]
pairs.each do |pair|
pair.split(',') #=> ["5", "1"] etc
end--
Andrew Timberlake
http://ramblingsonrails.com
http://www.linkedin.com/in/andrewtimberlake"I have never let my schooling interfere with my education" - Mark Twain
--
Posted via http://www.ruby-forum.com/\.