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