저는 경주 결과를 해석하는 프로그램을 작성하려고합니다. 그러나이 작업을 수행하려면 String.matches(String regex)
메서드를 사용하여 문자열이 특정 패턴과 일치하는지 테스트하기 위해 정규 표현식을 사용해야합니다. 이 메서드를 사용할 때 true
을 반환 할 것으로 예상되는 일부 문자열은 false
대신 반환하십시오. 정규식 패턴으로 다음 문자열을 사용String.matches()가 예기치 않게 false를 반환합니다.
, 문자열의 일부 때뿐만 아니라 true
를 반환해야 true
및 기타 false
를 반환 :
regex = "[ ]*[1-9]+[ ]+[a-zA-Z]+[ ]+[a-zA-Z]+[ ]+[a-zA-Z]+[ ]?[a-zA-Z]*[ ]?[a-zA-Z]*[ ]?[a-zA-Z]*[ ]?[a-zA-Z]*[ ]?[a-zA-Z]*[ ]?[1-9]+[ ]+[1-9]+[ ]+[0-9:.]+[ ]+"
이이 string.matches(String regex)
방법 true
를 반환하는 문자열의 일부가 :
" 1 Ryan Kepshire Crown Point 31 4 16:31 "
" 2 Matthew Mosak Crown Point 34 4 16:44 "
" 3 Dylan Wallace Crown Point 36 4 16:58 "
" 4 Nicholas Zak Hanover Central 51 6 17:08 "
" 5 Joshua Whitaker Crown Point 37 4 17:16 "
" 8 Collin Allen Hobart 64 8 17:23 "
" 9 Zachary Hoover Crown Point 29 4 17:29 "
다음은와 false
를 반환하는 문자열의 일부입니다방법 :
" 6 Christopher Ramos River Forest 103 12 17:18 "
" 7 Boyer Hunter Lowell 78 10 17:20 "
" 10 Miguel Tapia Merrillville 98 11 17:32 "
상단 7이 통과하는 동안 맨 아래의 3 개 문자열이 정규식 테스트에 실패한 이유를 확인하는 데 도움이 필요합니다. integers.That에서 0
을 허용하지 않습니다
문자 클래스를'[1-9]'에서'[0-9] '로 변경하면됩니다. –