Skip to content

Latest commit

 

History

History
73 lines (48 loc) · 1.91 KB

README.md

File metadata and controls

73 lines (48 loc) · 1.91 KB

RegexSolver

Crates.io Version

This repository contains the code of RegexSolver engine.

For more information, you can check the library's documentation.

If you want to use this library with other programming languages, we provide a wide range of wrappers:

For more information about how to use the wrappers, you can refer to our getting started guide.

Installation

Add the following line in your Cargo.toml:

[dependencies]
regexsolver = "0.3"

Examples

Union

use regexsolver::Term;

let term1 = Term::from_regex("abc").unwrap();
let term2 = Term::from_regex("de").unwrap();
let term3 = Term::from_regex("fghi").unwrap();

let union = term1.union(&[term2, term3]).unwrap();

if let Term::RegularExpression(regex) = union {
    println!("{}", regex.to_string()); // (abc|de|fghi)
}

Intersection

use regexsolver::Term;

let term1 = Term::from_regex("(abc|de){2}").unwrap();
let term2 = Term::from_regex("de.*").unwrap();
let term3 = Term::from_regex(".*abc").unwrap();

let intersection = term1.intersection(&[term2, term3]).unwrap();

if let Term::RegularExpression(regex) = intersection {
    println!("{}", regex.to_string()); // deabc
}

Difference/Subtraction

use regexsolver::Term;

let term1 = Term::from_regex("(abc|de)").unwrap();
let term2 = Term::from_regex("de").unwrap();

let subtraction = term1.subtraction(&term2).unwrap();

if let Term::RegularExpression(regex) = subtraction {
    println!("{}", regex.to_string()); // abc
}