* 정규 표현식 문법
- 문자 클래스
- '[ ]' 특수문자 안에서 자주 사용되는 패턴들을 미리 키워드로 정의하여 놓은 문자
- 해당 문자 클래스를 자바에서는 다르게 사용
패턴 |
문자클래스 |
자바 사용 예 |
[a-zA-Z] |
[[:alpha:]] |
\p{Alpha} |
[0-9] |
[[:digit:]] |
\p{Digit} |
[a-zA-Z0-9] |
[[:alnum:]] |
\p{Alnum} |
공백 |
[[:space:]] |
\p{Space} |
- 특수 문자 사용
- 메타문자('.', '*', '+' 등)을 정규표현식의 패턴에서 사용하려면 해당 특수문자 앞에 '\' 사용
- '\'를 패턴에서 사용하려면 \\ 로 사용 - 기타 표현(\는 역슬래쉬)
패턴
설명
\w
[a-zA-Z0-9]
알파벳이나 숫자
\W
[^a-zA-Z0-9]
알파벳이나 숫자를 제외한 문자
\d
[0-9]
숫자 [0-9]와 동일
\D
[^0-9]
숫자를 제외한 모든 문자
^[0-9]*$
\p{Digit}
숫자만
^[a-zA-Z]*$
\p{Alpha}
영문자만
^[가-힣]*$
한글만
^[a-zA-Z0-9]*$
\p{Alnum}
영어/숫자만
[[:space:]]
\p{Space}
공백
-
표현 예
구분
패턴
이메일
^[a-zA-Z0-9]+@[a-zA-Z0-9]+(.[\w]+)^[_0-9a-zA-Z-]+@[0-9a-zA-Z-]+(.[_0-9a-zA-Z]+)*$휴대폰
^01(?:0|1|[6-9]) - (\d{3,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})
인터넷주소
([\\p{Alnum}]+)://([a-z0-9.\\-&%=?:@~\\_]+)"
- Pattern 클래스
- 주어진 정규 표현식으로부터 패턴 생성
static Pattern compile(String regex)
주어진 정규 표현식으로부터 패턴 생성
static Matcher matcher(CharSequence input)
패턴을 검색하는 Marcher 객체 반환
String pattern( )
정규표현식을 String으로 반환
String split(CharSequence input)
패턴에 따라 분리
-
Matcher 클래스
- 문자열이 주어진 패턴과 일치하는지 확인
- Matcher matcher = pattern.patcher("문자열"); -
String 클래스의 정규 표현식 지원 메소드
메소드
기능
boolean matches(String regex)
문자열 안에 주어진 패턴이 존재 하는 지의 여부 반환
String replaceAll(String regex, String replaceStr)
패턴과 일치하는 모든 부분을 replaceStr로 치환
String replaceFirst(String regex, String replaceStr)
패턴과 일치하는 첫 부분을 replaceStr로 치환
String[] splite(String regex)
패턴과 일치하는 구분자를 기준으로 분할하여 배열로 반환
[출처] [Java] 정규표현식(2)|작성자 워니
출처: http://javafactory.tistory.com/1354?category=485631 [FreeLife의 저장소]
'프로그래밍 > JAVA' 카테고리의 다른 글
디자인 패턴 (0) | 2018.01.30 |
---|---|
String, StringBuilder , StringBuffer (0) | 2018.01.29 |
정규 표현식(Regular Expression) 1 (0) | 2018.01.23 |
JAVA에서 NULL 체크 어떻게 하고 계시나요? (1) | 2018.01.16 |
디자인 패턴 MVC (0) | 2018.01.03 |