Home     |     .Net Programming    |     cSharp Home    |     Sql Server Home    |     Javascript / Client Side Development     |     Ajax Programming

Ruby on Rails Development     |     Perl Programming     |     C Programming Language     |     C++ Programming     |     IT Jobs

Python Programming Language     |     Laptop Suggestions?    |     TCL Scripting     |     Fortran Programming     |     Scheme Programming Language


 
 
Cervo Technologies
The Right Source to Outsource

MS Dynamics CRM 3.0

Python Programming Language

Is 1 large Regex faster than 3 smaller ones?


Hi,

I need to match 3 small strings in a small text file (about 200 words
of text).

Would it be faster to write 1 compiled regex that matches all 3
substrings in one go, or to use 3 separate regular expressions to do
the same job?

Thanks!
Erik

In article <1180896727.419817.303@p47g2000hsd.googlegroups.com>,

 erikcw <erikwickst@gmail.com> wrote:
> Hi,

> I need to match 3 small strings in a small text file (about 200 words
> of text).

> Would it be faster to write 1 compiled regex that matches all 3
> substrings in one go, or to use 3 separate regular expressions to do
> the same job?

> Thanks!
> Erik

For a classic regex, the answer is one big one.  Matching against a regex
takes time proportional to the number of characters of input.  One big
regex will probably consume more memory, and may be slower to compile, but
it should run faster.

On the other hand, there are a lot of things that pattern maching libraries
accept these days under the guise of being a "regex" which are not strictly
regexes in the classic sense.

From a purely practical point of view, if your input is only 200 words,
it's likely that the search time will be insignificant no matter what you
do.

On Jun 4, 4:52 am, erikcw <erikwickst@gmail.com> wrote:

> Hi,

> I need to match 3 small strings in a small text file (about 200 words
> of text).

> Would it be faster to write 1 compiled regex that matches all 3
> substrings in one go, or to use 3 separate regular expressions to do
> the same job?

Taking your question literally: we have no idea how long it might take
you to write alternative versions of source code.

Guessing that you mean "Which would run faster?": both should run over
a 200-word text file in imperceptibly different time (unless of course
you make a mistake), and the time should be tiny compared to the time
required to open the file (again unless of course you make a mistake).

I'd suggest that as a learning exercise you do both, check the
accuracy of both (text e.g. matching only 2 out of 3, sought strings
in different orders, etc), and then and only then worry about the time
it takes.

HTH,
John

Add to del.icio.us | Digg this | Stumble it | Powered by Megasolutions Inc