Java 에서 정규표현식을 사용하는 방법이다.
정규표현식 사용법은 언어마다 달라서 헷갈리는 점이 있다.
하지만 뭐, 기본적인 사용법은 다 같으니까...
"size" 에서 "s,e" 두 글자를 찾아서 출력해보자.
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
String text = "size";
Pattern p = Pattern.compile("[se]"); // s 또는 e 를 찾는 패턴
Matcher m = p.matcher(text); // text 에서 패턴 검사를 수행한 결과들을 m 에 담는다.
ArrayList<string> listMatches = new ArrayList<string>();
while (m.find())
System.out.println(m.group()); // m 의 그룹(결과)을 각각 출력한다.
m.reset();
while (m.find())
listMatches.add(m.group());
System.out.println(listMatches); // listMatches 에 담긴 m 의 그룹들을 출력한다.
s e [s,e]
2,3열 import
Java 의 정규표현식 패키지는 java.util.regex 이다.
11열 while(m.find())
조건문 while 에서 m.find() 가 아닌 m.match() 로 검사를 할 경우 출력이 되지 않는다. find() 는 패턴이 포함되었는가를 묻지만 match() 는 패턴과 완전히 일치하는가를 묻기 때문이다.
14열 m.reset()
find() 결과를 reset 한다. 파일 포인터를 초기화 하는 것과 비슷한 개념이다.
16열 m.find()
match 의 결과는 배열 형태로 저장되지 않기 때문에, list 와 같은 형태로 사용하고 싶다면 find() 와 group() 을 사용해 새로운 list 만들어줘야 한다.
한편, String 클래스의 함수를 이용 하여 정규표현식을 사용할 수도 있다.
split() 함수는 String[] 을 반환하기 때문에, 그 결과를 배열 형태로 이용할 수 있다.
String text = "a+b";
System.out.println(text.split("\\W")[0]);
a
'프로그래밍' 카테고리의 다른 글
[Python] 파이썬 기본내용 정리(2) - 자료구조 (0) | 2013.07.26 |
---|---|
[Python] 파이썬 기본내용 정리(1) - 자료형 (0) | 2013.07.25 |
[Visual Studio][Eclips] 비주얼 스튜디오, 이클립스 단축키 (0) | 2013.07.22 |
[Python] Notepad++ 에서 Python 실행하기 (3) | 2013.06.29 |
[JS & jQuery] 특정 위치의 Object 알아내기 (4) | 2013.06.23 |