⚠️ Warning: This project is for educational purposes only and is not intended for production use.
This project is a custom regex engine implemented in Rust. It aims to provide fundamental regex functionalities with a focus on learning and understanding the inner workings of regex processing.
To use this regex engine in your Rust project, include it as a module and use the Regex struct to compile and match regex patterns.
use rust_regex_engine::Regex;
fn main() {
let regex = Regex::new("^[hH]ello,? [wW]orld ?!").unwrap();
let res = regex.find("Hello, world!");
println!("Does it match? {}", res.is_match());
}- Basic regex pattern matching.
- Support for quantifiers like
*,+, and?. - Anchors for start (
^) and end ($) of the string. - Basic character classes.
- Non-capturing groups.
- (More features to be implemented)
- Implement
find()function to return aMatchstructure, which includes:.matched(bool): Indicates if the pattern was matched..start(usize): Starting index of the match..end(usize): Ending index of the match.range(): Provides the range of indices for the matched substring.
- Add support for character classes
[]. - Implement non-capturing groups
(?:abc)*. - Implement capturing groups
(abc).
Basic tests are implemented to ensure the functionality of various regex patterns and quantifiers. Additional tests will be added along with the development of new features.