lwre — lightweight regular expression matching for C

lwre is a lightweight regular expression matching library intended for those occasions when you want to search in text with a minimum of fuss, bloat and complexity. Compared to other common solutions it is ten times smaller than the POSIX regex(3) functions and more than thirty-five times smaller than the popular PCRE package. It has far fewer bells, whistles, dials and guages, but in return offers the simplest possible interface, very reasonable performance, and freedom from the exponential complexity that renders backtracking implementations useless for certain kinds of regular expression.

A typical usage scenario might be:

struct re re= RE_INITIALISER("your regular expression here");
...
int nmatched= re_match(&re, your string to search here);
if (nmatched > 0) puts("found it!");

lwre supports UTF-8 encoded multibyte characters and submatch recording, including within repetitions (creating multiple submatches according to the number of times the repetition matches).

Download the source code: lwre-0.0.2.tar.gz
Browse the source code: lwre-0.0.2
Read the manual page: lwre.3.html

lwre is distributed under the MIT license. You will not contract an incurable Religiously Transmitted Disease if you decide to include it in your own project.

If you find bugs or have suggestions, please send them to Ian at the domain name of this web site. Thanks!

References

Version history

2013-12-21 lwre-0.0.2
Remove redundant dependencies from Makefile. Rename re.source -> re.expression to match manual page.
2013-12-20 lwre-0.0.1
First public "alpha" release.