Welcome to the Regular Expression Engine course project repository! This repository contains a simple implementation of a Regular Expression Engine in Go. We aim to imitate the egrep
. This project was created as part of a DAAR course at Sorbonne University to help you understand the inner workings of regex engines.
Regular expressions are a powerful tool for text pattern matching and manipulation. This project aims to demystify how regular expression engines work under the hood by providing a simple implementation. By exploring this codebase, you'll gain a deeper understanding of how regex engines parse and match text.
Our Regular Expression Engine offers the following features:
- Basic Matching: It can match simple regular expressions with characters like letters, digits, and special characters.
- Quantifiers: Basic quantifiers like
*
, and+
are supported.
Before testing the project it is required to have the following technologies installed.
- PyInstaller refer to the installation guide to install.
- Makefile: refer to the installation guide to install.
- Git: refer to the installation guide to install.
To get started with this Regular Expression Engine, follow these steps:
-
Clone this repository to your local machine using the following command:
git clone https://github.com/ubombar/daar-regex-engine.git
-
Change the directory to the project folder:
cd daar-regex-engine
-
Run the following command to build the executable. Note that to before building it is reccomended to clean the project. Additionally, building the project requires you to install
pyinstaller
. You can findmake clean make build
-
(Optional) If you want to do a performance test you can use the
make test
command.
We welcome contributions from the community to improve this Regular Expression Engine project. If you'd like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch for your changes.
- Make your contributions and commit them with clear messages.
- Push your changes to your fork.
- Create a pull request to the main repository.
Please ensure your code adheres to good coding practices and includes appropriate documentation.