# 🔮 Write readable regular expressions
The crate provides a clean and readable way of writing your regex in the Rust programming language:
Without `pretty_regex` | With `pretty_regex` |
``` \d{5}(-\d{4})? ``` | ```rs digit() * 5 + (just("-") + digit() * 4).optional() ``` |
``` ^(?:\d){4}(?:(?:\-)(?:\d){2}){2}$ ``` | ```rs beginning() + digit() * 4 + (just("-") + digit() * 2) * 2 + ending() ``` |
``` rege(x(es)?|xps?) ``` | ```rs just("rege") + (just("x") + just("es").optional()) | (just("xp") + just("s").optional()) ``` |
To convert a PrettyRegex
into a regex from regex
crate, you can call to_regex
or to_regex_or_panic
:
```rs use pretty_regex::digit;
let regex = (digit() + asciialphabetic().optional()).toregexorpanic();
assert!(regex.is_match("3")); ```