반응형
정규표현식이란?
문자열에 특정한 패턴이 있을 때 해당 패턴을 식으로 정의하여 패턴에 맞는 문자열들을 추출할 때 사용하는 기능
정규표현식 사용이유
문자열에서 특정한 패턴을 이용해서 조작할 경우, 조건문을 사용할 때는 코드가 길고 복잡하게 되지만
정규표현식을 이용하면 간단하고 효율적으로 작성할 수 있다.
기호 정리
기호 | 설명 | |||
[] | 한 개의 문자 | [abc] | a,b,c중 하나의 문자 | |
[^abc] | a,b,c 이외 하나의 문자 | |||
[a-zA-Z] | a~z,A~Z중 하나의 문자 | |||
\d | 한 개의 숫자 [0-9]와 동일 | d, s, w를 대문자로 바꾼다면 그 이외의 문자를 나타낸다. ex) \D 숫자 이외의 문자 |
||
\s | 공백 | |||
\w | 한 개의 알파벳 or 한 개의 숫자 [a-zA-Z_0-9]와 동일 | |||
? | 없음 또는 한 개 | |||
* | 없음 또는 한 개 이상 | |||
+ | 한 개 이상 | |||
{n} | 정확히 n개 | |||
{n,} | n개 이상 | |||
{n,m} | n개부터 m개까지 | |||
() | 그룹핑 | |||
^ | 문자열의 시작 | |||
$ | 문자열의 종료 | |||
. | 임의의 한 문자 | |||
^ | Not을 의미 |
사용예시
1. 전화번호
전화번호 예시로는 02-123-1234 or 010-1234-1234 or 031 123 1234 등이 있다.
이를 정규식으로 표현하면 아래와 같이 나타낼 수 있다."\d{2,3}(-|\s)\d{3,4}(-|\s)\d{4}"
2. 이메일
이메일 예시로는 abc@abcd.com or abc@abcd.ac.kr 등이 있다
이를 정규식으로 표현하면 아래와 같이 나타낼 수 있다."\w+@\w+\.\w+(\.\w+)?"
자바 클래스 사용방식
1. Pattern.matches()
이 문자열이 정규식과 일치하는지 검증할 때
boolean result = Pattern.matches("정규식", "검증할 문자열")
2. String.replaceAll()
문자열내에서 정규식과 매칭되는 모든 문자열을 원하는 문자열로 바꾼다.
String.replaceAll("정규식", "바꿀 문자열")
반응형
'Java' 카테고리의 다른 글
[Java] 자바 컬렉션 Set (0) | 2022.01.11 |
---|---|
[Java] String 클래스 정리 (0) | 2022.01.08 |
[Java] 상속이란? (0) | 2022.01.06 |
[Java] 변수와 자료형 (0) | 2022.01.04 |
[Java] 자바 ArrayList 정리 (0) | 2021.09.16 |