Skip to content

tonievictor/rexen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rexen

Package Version Hex Docs

gleam add rexen
import rexen

pub fn main() {
    let assert Ok(nfa) = rexen.new("(ab)*")
    rexen.compute(nfa, "ab") // -> True
    rexen.compute(nfa, "ababab") // -> True
    rexen.compute(nfa, "ababa") // -> False
    rexen.compute(nfa, "a") // -> False
}

Features

Rexen supports a core set of regular expression operations, including:

Operator Description Expression Matches
* Zero or more of the preceding character or group of characters a* "", "a", "aa" "aaa"
+ One or more of the preceding character or group of characters a+ "a", "aa", "aaa"
? Zero or one of the preceding character or group of characters a? "", "a"
| Matches either the expression before or after the operator a|b "a", "b"
() Groups characters or expressions (ab)+ "ab", "abab", "ababab"

Note: Concatenation is implicit in rexen. ie the expression abc matches a followed by b and c - "abc"

Further documentation can be found at https://hexdocs.pm/rexen.

Development

gleam test  # Run the tests

About

Compile and evaluate regular expressions using Non-deterministic Finite Automata (NFAs).

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages