New regex: Find?

Derek Parnell derek at psych.ward
Mon May 4 14:19:15 PDT 2009


On Mon, 04 May 2009 16:07:58 -0500, Andrei Alexandrescu wrote:

> Derek Parnell wrote:
>> On Mon, 04 May 2009 10:09:56 -0500, Andrei Alexandrescu wrote:
>> 
>>> dsimcha wrote:
>>>> Is there an *efficient* way to simply test whether a given string contains a
>>>> given regex in the new std.regex?  Using match() and testing for empty works,
>>>> but this apparently triggers a bunch of unnecessary heap allocation.  If not,
>>>> is this a universal enough feature to warrant an enhancement request?
>>> If you only search once, there will be allocation. However, if you 
>>> search for the same regex several times there will be no extra 
>>> allocation so the cost will be amortized.
>> 
>> ranslation: No, there isn't "an *efficient* way".
>> 
> 
> I think your translation omits important information. I meant exactly 
> what I said: one isolated search can't be currently helped. Repeated 
> searches can. This is because one search triggers the construction of a 
> regex engine, which in turn allocates memory.

I know you meant exactly what you said. I did understand the concept that
you were putting forward. However, you didn't actually answer the question.
Your answer sounds as if it came from a politian. 

Maybe a compromise then (more polly talk) ... 

It is not efficient if you are doing one (or a few) finds, however when
doing many finds using the same regex it becomes more and more efficient
the more you use it.

-- 
Derek Parnell
Melbourne, Australia
skype: derek.j.parnell



More information about the Digitalmars-d mailing list