Java 정규표현식 정리
프로그래밍에서 주로 문자열처리에 사용하는 형식언어이다. 많은 언어에 도입되서 사용되며 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})
Author And Source
이 문제에 관하여(Java 정규표현식 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@bigdream96/Java-정규표현식-정리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)