NeuroWhAI의 잡블로그

[Rust] std::str::matches(...) 사용법 본문

개발 및 공부/언어

[Rust] std::str::matches(...) 사용법

NeuroWhAI 2018. 2. 4. 08:09



예시:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
fn count(value: &str, substr: &str) -> usize {
    value.matches(substr).count()
}
 
fn pick_num(value: &str) -> Vec<&str> {
    value.matches(char::is_numeric).collect()
}
 
fn main()
{
    println!("Count : {}", count("aabcd abaaz zaazxcaxa""aa"));
    println!("Numbers : {:?}", pick_num("1a23bc4d"));
}
 
cs

결과:
Count : 3
Numbers : ["1", "2", "3", "4"]


matches는 str에 있는 메소드로서 패턴을 받아 매칭된 결과를 Matches로 반환해줍니다.
패턴으로는 &str, char, 클로저가 기본적으로 쓰일 수 있으며 Pattern trait을 구현한 다른 객체들도 쓰일 수 있습니다.

결과로 반환하는 Matches는 Iterator trait을 구현하는 struct라서
next() 등으로 매칭된 결과 요소를 하나씩 뽑아낼 수 있으며
count()로 매칭된 횟수를 얻을수도 있고
collect()를 사용해서 Vec<_>같은 컬렉션으로 바꿀수도 있으며
그냥 for문에 사용할수도 있습니다.
Matches의 자세한 사용법은 공식 문서를 보시면 됩니다.




Comments