Rust:
Att använda reguljära uttryck
Hur man gör:
Rusts regex
-bibliotek är det givna valet för att arbeta med reguljära uttryck. För att använda det måste du först lägga till det i din Cargo.toml
:
[dependencies]
regex = "1"
Sedan kan du börja implementera regex-funktionaliteter i din Rust-kod. Så här utför du några vanliga operationer:
Matcha ett mönster i en sträng
use regex::Regex;
fn main() {
let re = Regex::new(r"^\d{4}-\d{2}-\d{2}$").unwrap();
let datum = "2023-04-15";
println!("Stämmer texten överens med datumsmönstret? {}", re.is_match(datum));
// Utdata: Stämmer texten överens med datumsmönstret? true
}
Hitta och komma åt matchningar
use regex::Regex;
fn main() {
let text = "Rust 2023, C++ 2022, Python 2021";
let re = Regex::new(r"\b(\w+)\s(\d{4})").unwrap();
for cap in re.captures_iter(text) {
println!("Språk: {}, År: {}", &cap[1], &cap[2]);
}
// Utdata:
// Språk: Rust, År: 2023
// Språk: C++, År: 2022
// Språk: Python, År: 2021
}
Ersätta text
use regex::Regex;
fn main() {
let re = Regex::new(r"\b(\w+)\s(\d{4})").unwrap();
let text = "Rust 2023, C++ 2022, Python 2021";
let ersatt = re.replace_all(text, "$1 uppdaterades år $2");
println!("Uppdaterad text: {}", ersatt);
// Utdata: Uppdaterad text: Rust uppdaterades år 2023, C++ uppdaterades år 2022, Python uppdaterades år 2021
}
Dela upp text med hjälp av ett regex
use regex::Regex;
fn main() {
let re = Regex::new(r"\W+").unwrap(); // dela vid varje tecken som inte är ett ord
let text = "Rust-C++-Python-Go";
let fält: Vec<&str> = re.split(text).collect();
for fält in fält {
println!("Språk: {}", fält);
}
// Utdata:
// Språk: Rust
// Språk: C++
// Språk: Python
// Språk: Go
}
Dessa exempel ger en grundläggande guide för att komma igång med reguljära uttryck i Rust. När dina behov blir mer sofistikerade erbjuder regex
-craten en mängd funktionalitet för komplex mönsterpassning och textmanipuleringsuppgifter.