matches()
전체 문자열이 일치하는 경우에만 true를 반환합니다.
하위 문자열 내에서 정규 표현식과 일치하는 다음 항목 find()
을 찾으려고 시도합니다 . "다음"에 중점을 둡니다. 즉, 여러 번 호출 한 결과가 동일하지 않을 수 있습니다. 또한을 사용 하여 하위 문자열이 일치 한 위치를 반환하도록 호출 할 수 있습니다 .find()
find()
start()
final Matcher subMatcher = Pattern.compile("\\d+").matcher("skrf35kesruytfkwu4ty7sdfs");
System.out.println("Found: " + subMatcher.matches());
System.out.println("Found: " + subMatcher.find() + " - position " + subMatcher.start());
System.out.println("Found: " + subMatcher.find() + " - position " + subMatcher.start());
System.out.println("Found: " + subMatcher.find() + " - position " + subMatcher.start());
System.out.println("Found: " + subMatcher.find());
System.out.println("Found: " + subMatcher.find());
System.out.println("Matched: " + subMatcher.matches());
System.out.println("-----------");
final Matcher fullMatcher = Pattern.compile("^\\w+$").matcher("skrf35kesruytfkwu4ty7sdfs");
System.out.println("Found: " + fullMatcher.find() + " - position " + fullMatcher.start());
System.out.println("Found: " + fullMatcher.find());
System.out.println("Found: " + fullMatcher.find());
System.out.println("Matched: " + fullMatcher.matches());
System.out.println("Matched: " + fullMatcher.matches());
System.out.println("Matched: " + fullMatcher.matches());
System.out.println("Matched: " + fullMatcher.matches());
출력합니다 :
발견 : 거짓
발견 : 사실-위치 4
발견 : 참-위치 17
발견 : 사실-위치 20
발견 : 거짓
발견 : 거짓
일치 : 거짓
-----------
발견 : true-위치 0
발견 : 거짓
발견 : 거짓
일치 : true
일치 : true
일치 : true
일치 : true
호출 할 때,주의 find()
경우 여러 번 Matcher
개체가 초기화되지 않은 정규식이 둘러싸여 경우에도, ^
그리고 $
전체 문자열과 일치 할 수 있습니다.
find()
여러 번 호출 하면 동일한 결과가 다르게 나타날 수 있습니다Matcher
. 아래 답변을 참조하십시오.