Java 정규표현식 정리

youngjoon·2021년 9월 30일
0

Java

목록 보기
6/9

프로그래밍에서 주로 문자열처리에 사용하는 형식언어이다. 많은 언어에 도입되서 사용되며 Java에도 관련 API를 제공한다.

1. 사용법

자바에서는 정규표현식을 java.util.regex 패키지에 모아놨습니다. 그중에서 Pattern 클래스를 사용하시면 됩니다. 해당 클래스는 주어진 문자열에서 패턴을 적용해서 매칭합니다.

아래는 간단한 사용예시입니다.

 Pattern p = Pattern.compile("a*b");
 Matcher m = p.matcher("aaaaab");
 boolean b = m.matches();

a*b의 패턴을 해석하면 a문자와 b문자 사이의 0개이상의 문자들이 있으면 매칭이 됩니다. 그래서 최종결과는 true가 도출됩니다.

아래와 같이 더 간단하게 한줄로 사용할 수도 있습니다.

 boolean b = Pattern.matches("a*b", "aaaaab");

matches메서드에 첫번째 인자로 표현식, 두번째 인자로 매칭시킬 문자열을 넣으시면 됩니다.

2. 메타문자

^ : 문자열의 시작
$ : 문자열의 종료
. : 임의의 한 문자
[]: 문자 클래스
^ : 문자 클래스 내에서 ^는 not
- : 범위를 의미한다.
| : or를 나타냄
? : 앞 문자가 없거나 하나 있음
+ : 앞 문자가 1개 이상임
* : 앞 문자가 0개 이상임
{n,m} : 앞 문자가 n개 이상 m개 이하
{n,} : 앞 문자가 n개 이상
{n} : 앞 문자가 정확히 n개
() : 하나의 문자로 묶어준다.
\s : 공백문자
\b : 문자와 공백 사이를 의미한다.
\d : 숫자를 의미한다.
\t : 탭문자
\w : 단어 영문자+숫자+_(밑줄)

3. 자주 사용하는 패턴

숫자 : ^[0-9]*$
영문자 : ^[a-zA-Z]*$
한글 : ^[가-힣]*$
영어/숫자 : ^[a-zA-Z0-9]*$
이메일 : ^[a-zA-Z0-9]+@[a-zA-Z0-9]+$
휴대폰 : ^01(?:0|1|[6-9]) - (?:\d{3}|\d{4}) - \d{4}$
일반전화 : ^\d{2,3} - \d{3,4} - \d{4}$
주민등록번호 : \d{6} \- [1-4]\d{6}
IP주소 : ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3})
profile
Java언어와 객체지향에 관심이 많은 개발자

0개의 댓글