Range modifications: Difference between revisions

Content added Content deleted
m (parse reversed ranges)
Line 234: Line 234:
function parse(::Type{RangeSequence}, s)
function parse(::Type{RangeSequence}, s)
seq = UnitRange[]
seq = UnitRange[]
entries = sort!(split(s, r"\s*,\s*"))
entries = split(s, r"\s*,\s*")
for e in entries
for e in entries
startstop = split(e, r"\:|\-")
startstop = split(e, r"\:|\-")
Line 245: Line 245:
end
end
end
end
return seq
return sort!(seq)
end
end


Line 335: Line 335:


println("Parse \"10-25, 1-5, 27-30\" => ", parse(RangeSequence, "10-25, 1-5, 27-30"))
println("Parse \"10-25, 1-5, 27-30\" => ", parse(RangeSequence, "10-25, 1-5, 27-30"))
println("Parse \"1-3,5-15,25-10,27-30\" => ", parse(RangeSequence, "1-3,5-15,25-10,27-30"))
println("Parse \"3-1,15-5,25-10,30-27\" => ", parse(RangeSequence, "3-1,15-5,25-10,30-27"))
</lang>{{out}}
</lang>{{out}}
<pre>
<pre>
Line 362: Line 362:
removed 7 => 1-5,10-25,27-30
removed 7 => 1-5,10-25,27-30


Parse "10-25, 1-5, 27-30" => 1-5,10-25,27-30
Parse "10-25, 1-5, 27-30" => 10-25,27-30
Parse "1-3,5-15,25-10,27-30" => 1-3,10-25,27-30
Parse "3-1,15-5,25-10,30-27" => 1-3,5-25,27-30
</pre>
</pre>