rexen
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
matchesa
followed byb
andc
- “abc”
Further documentation can be found at https://hexdocs.pm/rexen.
Development
gleam test # Run the tests