digitalmars.D - regex get names
- James Miller (8/8) Feb 08 2012 I posted something similar learn, but since this is a request,
- Dmitry Olshansky (16/24) Feb 08 2012 Actually I believe it's a question of adding some introspection
I posted something similar learn, but since this is a request, not a question I'm going to reiterate it here. After looking through std.regex, it would be useful if there was a way to get the names of the named matches from the Captures. e.g. R[] names = m.getNames(). With the idea being that each name is one of the named sub-expressions from (?P<name>...). I could probably make the change myself, but I want to get any opinions on why this is not a good idea before doing so.
Feb 08 2012
On 08.02.2012 13:44, James Miller wrote:I posted something similar learn, but since this is a request, not a question I'm going to reiterate it here. After looking through std.regex, it would be useful if there was a way to get the names of the named matches from the Captures. e.g. R[] names = m.getNames(). With the idea being that each name is one of the named sub-expressions from (?P<name>...). I could probably make the change myself, but I want to get any opinions on why this is not a good idea before doing so.Actually I believe it's a question of adding some introspection methods/properties to Regex struct. That's something we need - names, number of captures and number <---> name correspondence. As for the request as is, when returning plain arrays for internals of objects I'm weary of one thing - it's either a) aliasing as const(R)[] b) duping the the internal array / allocating and filling a new one As long as internals of Regex are GC allocated and slicable we're fine with a). The b) option can get nasty as it adds overhead for innocently looking operations though they shouldn't be frequent. Personally, I'm more into returning a thin wrapped random-access range, that could be just map!"a.name"(dict), more importantly it can change it's mechanics later on. -- Dmitry Olshansky
Feb 08 2012