devStory

[ 정규식 사용하기 ] Pattern, Matcher, find(), group() 본문

언어/JAVA

[ 정규식 사용하기 ] Pattern, Matcher, find(), group()

Hyen_K 2018. 10. 2. 22:04

원하는 형태의 값인지 확인 할 경우,

또는 값을 원하는 형태로 바꿀 경우,

또는 원하는 형태의 값을 찾을 경우


정규식을 사용 하면 된다.


( 정규식이 잘 정리 되어있는 블로그 : https://lng1982.tistory.com/141 )



1. 원하는 값의 형태인지 확인 할 경우 : matches()

다음은 간단하게 숫자만 사용했는지 확인 해 보는 코드이다.

public void isEqualRegEx() {
		String regEx = "^[0-9]*$";
		String target1 = "숫자만 써야함";
		String target2 = "0123456789";

		System.out.println(target1.matches(regEx));
		System.out.println(target2.matches(regEx));
	}

결과는 

false

true

이다.


2. 원하는 형태의 값을 찾을경우 : find(), group() 


정규표현식  Matcher와 Pattern 을 사용하면 원하는 형태의 값을 찾는데 여러개일 경우 처리하기 좋다.

import java.util.regex.Matcher;
import java.util.regex.Pattern;

사용법은 아래와 같다.


Pattern pat = Pattern.compile("여기에 정규식 입력"); 

패턴을 정의 한 후

Matcher match = pat.matcher("여기에 조사할 문자열");

정의된 패턴에 매치 되는 값을 저장한다.

match.find()

매치된 값이 있으면 true 없으면 false를 반환한다.

match.group()

매치된 값을 반환한다.




o를 포함한 단어만 출력하는 간단한 예제를 만들어 보았다.

 
public void findAllEqualRegEx() {
		String regEx = "[a-zA-Z]*o[a-zA-Z]*";
		String tset = "You did a good job!";
		Pattern pat = Pattern.compile(regEx); 
   		Matcher match = pat.matcher(tset);

		while (match.find()) {
			System.out.println(match.group());
		}
	}


결과는 

you

good

job


참고 포스팅 :

http://highcode.tistory.com/6


'언어 > JAVA' 카테고리의 다른 글

[ StringUtils ] 구분자 넣어서 합치기  (0) 2018.09.28
Comments