Code Monkey home page Code Monkey logo

daar-regex-engine's Introduction

Regular Expression Engine Course Project

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.

Table of Contents

Introduction

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.

Features

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.

Getting Started

Prerequisites

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.

Cloning and Building

To get started with this Regular Expression Engine, follow these steps:

  1. Clone this repository to your local machine using the following command:

    git clone https://github.com/ubombar/daar-regex-engine.git
  2. Change the directory to the project folder:

    cd daar-regex-engine
  3. 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 find

    make clean
    make build
  4. (Optional) If you want to do a performance test you can use the make test command.

Contributing

We welcome contributions from the community to improve this Regular Expression Engine project. If you'd like to contribute, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your changes.
  3. Make your contributions and commit them with clear messages.
  4. Push your changes to your fork.
  5. Create a pull request to the main repository.

Please ensure your code adheres to good coding practices and includes appropriate documentation.

daar-regex-engine's People

Contributors

ubombar avatar

Watchers

 avatar  avatar

daar-regex-engine's Issues

Porting to Golang

Hello all,
As can seen the original plan was to implement this project in Golang. However, due to the limited time, we had to stick with Python. But as seen from the performance analysis from the Report.pdf the algorithm is not really performant.

For now, I am quite occupied by my university so I cannot imminently start porting the project to Go. However, I will soon.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.