rexen
gleam add rexenimport 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
abcmatchesafollowed bybandc- "abc"
Further documentation can be found at https://hexdocs.pm/rexen.
Development
gleam test # Run the tests