Ce face str::contains
contains returnează true dacă modelul apare oriunde în text. Ține cont de litere mari și mici și de diacritice: "Brașov".contains("Brasov") este false.
Dacă ai nevoie și de poziție, folosește find. Pentru a verifica dacă un caracter face parte dintr-o listă, poți întoarce întrebarea: "aeiou".contains(c).
Parametri
| Parametru | Descriere |
|---|---|
pat |
Textul, caracterul, lista de caractere sau funcția căutată. |
Ce returnează
bool.
Exemple
Exemplul 1: Căutare simplă și fără majuscule
fn main() {
let titlu = "Ghid Rust pentru începători";
println!("{}", titlu.contains("Rust"));
println!("{}", titlu.contains("rust"));
println!("{}", titlu.to_lowercase().contains("rust"));
println!("are cifre: {}", titlu.contains(|c: char| c.is_ascii_digit()));
}
Rezultat
true
false
true
are cifre: false
Exemplul 2: Verificarea unei parole
fn verifica(parola: &str) -> Vec<&'static str> {
let mut probleme = Vec::new();
if parola.chars().count() < 8 { probleme.push("prea scurtă"); }
if !parola.contains(char::is_uppercase) { probleme.push("fără majusculă"); }
if !parola.contains(|c: char| c.is_ascii_digit()) { probleme.push("fără cifră"); }
if parola.contains(' ') { probleme.push("conține spații"); }
probleme
}
fn main() {
for p in ["parola", "Parola2026", "Cluj Napoca1"] {
println!("{p:?}: {:?}", verifica(p));
}
}
Rezultat
"parola": ["prea scurtă", "fără majusculă", "fără cifră"]
"Parola2026": []
"Cluj Napoca1": ["conține spații"]
Greșeli frecvente
- Cauți un
Stringfără&:s.contains(cuvant)cucuvant: Stringnu compilează. Scries.contains(&cuvant)saus.contains(cuvant.as_str()).
Comenzi înrudite
str::find: Caută prima (find) sau ultima (rfind) apariție și returnează poziția ei în octeți, sau None.str::starts_with: Verifică dacă textul începe (starts_with) sau se termină (ends_with) cu un text, un caracter sau o condiție.str::matches: Iterator cu toate bucățile din text care se potrivesc cu modelul (fără suprapuneri); util pentru numărare.