Ce face str::trim_matches
trim_matches(pat) scoate de la început și de la final toate caracterele care se potrivesc, oricâte ar fi la rând. Modelul poate fi un char, o listă de caractere (['*', '-']) sau o funcție (|c: char| !c.is_alphanumeric()).
Un text întreg ca model ("ab") nu este acceptat de trim_matches, pentru că nu se poate căuta la fel din ambele direcții. Pentru texte folosește trim_start_matches și trim_end_matches, sau strip_prefix/strip_suffix dacă vrei să scoți o singură dată.
Parametri
| Parametru | Descriere |
|---|---|
pat |
Ce se elimină: char, [char; N], &[char] sau closure. |
Ce returnează
Un &str din textul original.
Exemple
Exemplul 1: Caractere decorative și semne de punctuație
fn main() {
println!("{}", "***Ofertă***".trim_matches('*'));
println!("{}", "--== Meniu ==--".trim_matches(['-', '=', ' ']));
println!("{}", "„Ce zi frumoasă!”".trim_matches(|c: char| !c.is_alphanumeric()));
}
Rezultat
Ofertă
Meniu
Ce zi frumoasă
Exemplul 2: Zerouri la început și text repetat la final
fn main() {
println!("{}", "000420".trim_start_matches('0'));
println!("{}", "raport.txt.txt".trim_end_matches(".txt"));
}
Rezultat
420
raport
Greșeli frecvente
- Scrii
s.trim_matches("ab")și primești o eroare de compilare despreDoubleEndedSearcher. Folosește un caracter, o listă de caractere sau varianteletrim_start_matches/trim_end_matches. - Te aștepți să elimine o singură dată:
trim_matches('0')pe"0070"dă"7", nu"070".
Comenzi înrudite
str::trim: Elimină spațiile albe de la ambele capete (trim), doar de la început (trim_start) sau doar de la final (trim_end).str::strip_prefix: Scoate o singură dată un prefix (sau sufix) și returnează restul ca Some; dacă textul nu începe cu el, None.String::retain: Păstrează doar caracterele pentru care funcția dată returnează true; restul sunt șterse pe loc.