Is 1 large Regex faster than 3 smaller ones?

E

erikcw

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
 
R

Roy Smith

erikcw said:
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.
 
J

John Machin

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,009
Latest member
GidgetGamb

Latest Threads

Top