Is str ~ regex the root of all evil, or the leaf of all good?

Christopher Wright dhasenan at gmail.com
Thu Feb 19 15:19:55 PST 2009


Denis Koroskin wrote:
> On Thu, 19 Feb 2009 15:00:42 +0300, Christopher Wright 
> <dhasenan at gmail.com> wrote:
> 
>> Denis Koroskin wrote:
>>> "abracazoo".match("a[b-e]", "g") is as short as "abracazoo" ~ 
>>> regex("a[b-e]", "g") but doesn't existing conventions. I prefer it 
>>> over '~' version. In is also fine (both ways).
>>
>> This isn't so good for two reasons.
>> First, I can't reuse regexes in your way, so if there is any expensive 
>> initialization, that is duplicated.
>>
>> Second, I can't reuse regexes in your way, so I have to use a pair of 
>> string constants.
> 
> auto re = regex("a[b-e]", "g");
> foreach (e; "abracazoo".match(re)) {
>     // what's wrong with that?
> }

Your first example was:
auto match (char[] source, char[] pattern, char[] options);

Your second example was:
auto match (char[] source, regex expression);

The second is good, but more typing than you said originally. The first 
is problematic.



More information about the Digitalmars-d mailing list