Matcher의 find()와 matches() 의 차이점

By | 5월 30, 2013

* find()

   - 대상 문자열에서 해당 패턴을 검색하여 일치하는 패턴이 일부라도 존재하면 true를 리턴한다.
   - find() 메서드를 수행할 때마다, 문자열 내에서 그 다음 순서의 해당 패턴을 찾는 것 같다. (Iterator처럼)
     예를 들어 해당하는 패턴이 한 개만 있다면, 첫 find()의 결과는 true, 두 번째 find()의 결과는 false이다.
   - matches()에 비해서 상대적으로 활용도가 높을 것 같다.

* matches()

   - 대상 문자열 전체가 해당 패턴과 일치하면 true를 리턴한다.
   - 문자열의 처음부터 끝까지 정규식을 만족시켜야 한다.(^과$가 붙었다고 생각하자)

* 참고

   - Matcher 객체에 reset() 이라는 메서드가 존재하는 것으로 보아, Iterator 처럼 어떤 카운터 같은 것이
     존재하는 게 아닌가 하는 생각이 드는데 아직 잘 모르겠다. -_-...

* 참고 링크

   http://stackoverflow.com/questions/4450045/difference-between-matches-and-find-in-java-regex

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments