Ce face str::strip_prefix
strip_prefix("https://") verifică dacă textul începe cu prefixul; dacă da, returnează Some(rest), altfel None. strip_suffix face același lucru la final. Ambele elimină modelul o singură dată, spre deosebire de trim_start_matches.
Pentru că răspund și la întrebarea „începe cu…?”, înlocuiesc combinația starts_with + tăiere manuală. Dacă vrei să păstrezi textul neschimbat când prefixul lipsește, scrie s.strip_prefix(p).unwrap_or(s).
Parametri
| Parametru | Descriere |
|---|---|
prefix / suffix |
Textul sau caracterul căutat la început / la final. |
Ce returnează
Option<&str>: restul textului sau None.
Exemple
Exemplul 1: Comenzi cu prefix
fn main() {
for mesaj in ["/vreme Iași", "/ajutor", "salut"] {
if let Some(rest) = mesaj.strip_prefix("/vreme ") {
println!("caut vremea pentru {rest}");
} else if let Some(cmd) = mesaj.strip_prefix('/') {
println!("comandă: {cmd}");
} else {
println!("mesaj obișnuit: {mesaj}");
}
}
}
Rezultat
caut vremea pentru Iași
comandă: ajutor
mesaj obișnuit: salut
Exemplul 2: Sufix și valoare implicită
fn main() {
let fisiere = ["poza.jpg", "document.pdf"];
for f in fisiere {
let nume = f.strip_suffix(".jpg").unwrap_or(f);
println!("{f} -> {nume}");
}
println!("{:?}", "aaab".strip_prefix('a')); // doar o dată
}
Rezultat
poza.jpg -> poza
document.pdf -> document.pdf
Some("aab")
Greșeli frecvente
- Faci
&s[7..]dupăstarts_with("http://")și greșești numărul.strip_prefixcalculează singur lungimea.
Comenzi înrudite
str::starts_with: Verifică dacă textul începe (starts_with) sau se termină (ends_with) cu un text, un caracter sau o condiție.str::trim_matches: Elimină de la ambele capete, în mod repetat, caracterele care se potrivesc cu modelul dat.str::split_once: Taie textul în două la prima apariție a separatorului și returnează perechea, sau None dacă separatorul lipsește.