Rust:
Reguliere expressies gebruiken
Hoe te:
Rust gebruikt de regex
crate voor regex-operaties. Voeg het eerst toe aan je Cargo.toml
:
[dependencies]
regex = "1"
Vervolgens kun je strings matchen als volgt:
use regex::Regex;
fn main() {
let re = Regex::new(r"^\d{4}-\d{2}-\d{2}$").unwrap();
let datum = "2023-04-01";
println!("Komt de tekst overeen met het datumpatroon? {}", re.is_match(datum));
}
Uitvoer:
Komt de tekst overeen met het datumpatroon? true
Voor het vastleggen van groepen:
use regex::Regex;
fn main() {
let re = Regex::new(r"(\w+)@(\w+)\.(\w+)").unwrap();
let e-mail = "[email protected]";
match re.captures(email) {
Some(caps) => {
println!("Gebruiker: {}, Domein: {}, Extensie: {}", &caps[1], &caps[2], &caps[3]);
}
None => println!("Geen match gevonden."),
}
}
Uitvoer:
Gebruiker: gebruiker, Domein: voorbeeld, Extensie: com
Diepgaand
Regex bestaat al sinds de jaren 1950, met wortels in de automaattheorie en formele taal. Rust’s regex
module is gebouwd voor snelheid en veiligheid, met een focus op het compileren van efficiënte regex patronen tijdens runtime. Alternatieven voor regex omvatten stringfuncties zoals find
, split
, en replace
, die eenvoudigere use-cases dekken zonder patronen. Regexen in Rust zijn bijzonder efficiënt vanwege uitgebreide optimalisatie en compilatie van de regex patronen.
Zie Ook
- De
regex
crate documentatie: https://docs.rs/regex/ - Rust’s boeksectie over regex: https://doc.rust-lang.org/book/ch18-00-patterns.html
- Hoofdstuk over Reguliere Expressies van “De Rust Programmeertaal”: https://doc.rust-lang.org/stable/book/ch18-03-pattern-syntax.html