1. 정규 표현식(Regular Expression)
정규표현식 : 일정한 패턴을 가진 문자열을 표현할 때 사용하는 형식 언어
2. 정규 표현식 기초
훨씬 더 많은 표현이 있지만 정규표현식 자체가 많이 난해하므로 몇가지 쉬운 것부터 시작합니다.
1) + : 바로 앞 글자가 1 or more repetition
2) * : 바로 앞 글자가 0 or more
3) | : Or
4) [] : match anything in this set
5) [-] : range
6) [^] : Not any character in this set
예) 문자열 "I eat it a little more 3 4 5 5!" 라는 text에서 문자열 패턴을 찾아 배열로 리턴하는 getToken(regEx)이라는 함수가 있다고 가정하면 다음의 예제는 이런 결과를 준다. (Coursera , Data Structures and Performance 과정 예제)
1) String [] words = text.split(" +"); => {"I","eat","it","a","little","more","3","4","5","5!"}
2) text.getToken("it") => {"it","it"}
3) text.getToken("it+") => {"it","itt"}
4) text.getToken("it+") => {"it","itt"}
5) text.getToken("it*") => {"i","it" , "itt"}
6) text.getToken("at|it*") => {"at","it" , "it"}
7) text.getToken("[345]") => {"3","4","5","5"}
8) text.getToken("[3-5]") => {"3","4","5","5"}
9) text.getToken("[^a-z35]") => {" ","4","!"}
3. Java에서 정규식을 사용한 패턴 매칭 (java.util.regex.Pattern)
1) Matcher Pattern.matcher(CharSequence input)
Pattern p = Pattern.compile("it+");
Matcher m = p.matcher("I eat it a little more 3 4 5 5!");
System.out.println(m.matches());
=> 정규표현식의 패턴이 전제 문자열의 패턴과 동일한지 체크. 이 경우 false 출력
Matcher m = p.matcher("itttt");
System.out.println(m.matches());
=> true 출력
2) Pattern.matches(String regExp, String s) => 문자열 s가 정규식 regExp를 만족하는 문자열인지 체크
String regExp = "(02|010|011)-\\d{3,4}-\\d{4}"; //{3,4} 3개혹은 4개
// 02-222-1111 / 02-1234-5678
String data = "010-123-5678";
boolean result = Pattern.matches(regExp, data);
if(!result){
System.out.println("정규식과 일치하지 않습니다.");
}else{
System.out.println("정규식과 일치합니다.");
}
4. Java에서 정규식을 사용한 패턴 매칭 2 (Pattern class 이외)
1)
'Tech-Java' 카테고리의 다른 글
Collection의 Sort 재정의 - Comparator (0) | 2017.08.20 |
---|---|
기타등등 (0) | 2017.04.02 |
Garbage Collection (0) | 2016.03.17 |
Eclipse Getting Started - Files , Exporting Files, Importing Files , Deleting resources (0) | 2007.12.14 |
Eclipse Getting Started - Navigating resources (0) | 2007.12.06 |
댓글