> Date: Wed, 02 Sep 2009 01:58:46 -0700 > From: [email protected]
> On Wed, Sep 2, 2009 at 12:15 AM, Xueming Shen<[email protected]> wrote: >> It would be an "ambiguity" (and then confused) only if we >> had the \k<n> and $<n> as the legally supported group >> reference syntax:-) That said I have to admit that it does >> not have any value-add to allow the a group name begins >> with a digit character. So if we have a consensus I would >> be happy to change the spec/implementation to dis-allow the >> digit letter started group name. That seems reasonable to me. > ... > > Anyway, I think consistency with other flavors is more important than > internal consistency in this case. Every flavor uses angle brackets > within the regex, but Perl uses $+{name} in the replacement string, > while .NET and JRegex both use ${name}. I think anyone who comes over > to java.util.regex with previous regex experience is more likely to > expect that syntax than anything else. I think this line of reasoning has merit, though I'm not sure that JRegex is an interesting data point any more. Python uses yet a third replacement-string syntax, \g<name>, so that's a data point in favor of angle brackets. The \g prefix, though, wouldn't fit that well with the rest of the existing Java replacement syntax. I'd say ${name} is the best option here given that it will be familiar, at least, to Perl and .NET developers. - Mark
