/CooleRE

coolRE (cooler) is a set of regular expression engines written in Python - implementing a toy engine for learning, then one based on backtracking and finally a NFA-DFA based engine.

Primary LanguagePythonMIT LicenseMIT

CooleRE Regular Expressions Engine

CooleRE (cooler) is a set of regular expression engines implemented from scratch in Python.

The goal is to implement 3 variants:

  1. A toy engine for learning
  2. One based on backtracking
  3. And lastly one based on Finite Automata

Why?

Some people, when confronted with a problem, think "I know, I'll use regular expressions."

Now they have two problems.

- Jamie Zawinski / David Tilbrook (depending upon how far you read this blog post)

Regular expressions are interesting in their own right and a RE engine is not-too-hard-not-too-easy challenge.

So why do this? For fun.

Not to study how regex works, there's better ways to learn regex. But to learn, how to do more than just use regex.

Trying to build the CooleRE 3 - should be an interesting refresher in elementary Theory of Computation, Automata, Compilers.

What's in it for you?

As an engineer, I suspect you'd get the same value from coolRE as me. Study the code or implement one of them on your own.

I don't plan to make any of these implementations comprehensive - meaning implementing every line and edge case of the specifications (listed in references below) but the main parts I build will conform to the specs.

References

What I'll use:


Big thank you to all those who've done this before, I learned loads, your work helps a lot!

Cool! Here we go...