Given the following regex to parse telephone numbers:
/^(\(?(?<area>[0-9]{3})\)?)?(\-| )?(?<exch>[0-9]{3})(\-|
)?(?<party>[0-9]{4})/
Is there a regex.method to access the parse data by group name? I was
hoping something like the following behavior:
rx = /^(\(?(?<area>[0-9]{3})\)?)?(\-| )?(?<exch>[0-9]{3})(\-|
)?(?<party>[0-9]{4})/
md = rx.match('800 325-3535')
puts md['area']+md['exch']+md['party']
I'm not that skilled with regex (yet), so I don't know if I could
extend the regex class with my own method. I'm not sure what all data
is available to me after parsing.
dvn
donn@cmscms.com wrote:
Given the following regex to parse telephone numbers:
/^(\(?(?<area>[0-9]{3})\)?)?(\-| )?(?<exch>[0-9]{3})(\-|
)?(?<party>[0-9]{4})/
Is there a regex.method to access the parse data by group name? I was
hoping something like the following behavior:
rx = /^(\(?(?<area>[0-9]{3})\)?)?(\-| )?(?<exch>[0-9]{3})(\-|
)?(?<party>[0-9]{4})/
md = rx.match('800 325-3535')
puts md['area']+md['exch']+md['party']
I'm not that skilled with regex (yet), so I don't know if I could
extend the regex class with my own method. I'm not sure what all data
is available to me after parsing.
For "group names", you can use this basic replacement idea:
[ 1,2,3,4 ].each do |exch|
[ "jones","smith" ].each do |party|
[ 303,404,505 ].each do |area|
array = data.scan(%r{[regex code](#{area})(#{exch})(#{party})[regex
code]})
end
end
end
using this code and suitable data, "array" will contain:
[[area1,exch1,party1],[area2,exch2,party2], ... ]
ยทยทยท
--
Paul Lutus
http://www.arachnoid.com
donn@cmscms.com wrote:
Given the following regex to parse telephone numbers:
/^(\(?(?<area>[0-9]{3})\)?)?(\-| )?(?<exch>[0-9]{3})(\-|
)?(?<party>[0-9]{4})/
Is there a regex.method to access the parse data by group name? I was
hoping something like the following behavior:
rx = /^(\(?(?<area>[0-9]{3})\)?)?(\-| )?(?<exch>[0-9]{3})(\-|
)?(?<party>[0-9]{4})/
md = rx.match('800 325-3535')
puts md['area']+md['exch']+md['party']
I'm not that skilled with regex (yet), so I don't know if I could
extend the regex class with my own method. I'm not sure what all data
is available to me after parsing.
dvn
With Ruby's builtin regex engine? No. With Oniguruma (or the Ruby 1.9
branch)? Yes.
http://www.geocities.jp/kosako3/oniguruma/
Regards,
Dan