Chapter 1 of the excellent book "Beautiful Code" discusses Rob Pike's very short and elegant regex parser code. It doesn't come with all the bells and whistles of a full Perl regular expression matcher but is quite sufficient for many purposes.
I extended Rob's C code in such a way that it can handle the following regex meta-symbols:
.
- match any character*
- the previous character is arbitrarily repeated+
- the previous character occurs at least once?
- the previous character occurs once or not at all^
- match regular expression only to the beginning of the text$
- match regular expression only to the end of the text\
- treat next character as a literal, even if it is a regex symbol
My library consists of just one .h
and one .c
file - that's why it's called "tiny".
See my website https://create.stephan-brumme.com/tiny-regular-expression-matcher/ for a live demo, code examples and a simple test suite.