정규식
= 정규식이란 텍스트 데이터 중에서 원하는 조건(패턴)과 일치하는 문자열을 찾아내기 위해 사용하는것.
- 정규식을 이용하면 많은 양의 텍스트 파일 중에서 원하는 데이터를 손쉽게 뽑아낼수도 있고 입력한 데이터가 형식에 맞는지 체크할 수도 있다.
정규식 사용법
- 정규식을 매개변수로 Pattern클래스의 static 메서드인 Pattern compile(String regex)을 호출하여 Pattern 인스턴스를 얻는다
- Pattern p= Pattern.compile("c[a-z]*");
- 정규식으로 비교할 대상을 매개변수로 Pattern클래스의 Matcher matcher(CharSequence input)을 호출해서 Matcher인스턴스를 얻는다.
정규식패턴
연습
"A borken hand works, but not a broken heart."
1."broken"을 find()로 찾은 후 처음으로 m.appendReplacement(sb,"drunken")가 호출되면 데이타(soruce) 시작부터 "broken" 찾은위치까지의 내용에 "drunken"을 더해서 저장
- find()는 첫번쨰로 발견된 위치부터 시작하여 다시검색 두번쨰 "broken" 을 찾게 된다.다시 m.appendReplacement(sb,"drunken") 호출
- "A drunken hand works, but not a drunken
- m.appendTail(sb) 호출되면 마지막으로 치환된 이후의 부분을 sb에 붙인다.
- "A drunken hand works, but not a drunken heart."
+a
- find()는 패턴과 일치부분이 있으면 true 아니면 false 반환
- Matcher의 find() 로 일치패턴을 찾으면 start()와 end() 로 위치를 알아낼수있고 appendReplacement(StringBuffer sb,String replacement)를 이용해서 원하는 문자열(replacement) 로 치환 할수 있다.
- 치환된 결과는 StringBuffer인 sb에 저장된다.