정규표현식(Regular Expression)이란?
특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식언어
전화번호, 이메일, 주민등록번호 등 정상적으로 입력됐는지 검증할 때 사용되며,
if문을 짤때 정규표현식을 사용하면 간다한게 구현할 수 있다.
정규표현식 문법
^ | 정규식의 시작 |
$ | 정규식의 끝 |
. | 임의의 한 문자 |
? | 앞의 문자가 하나 있거나 없을 수 있다 |
* | 앞의 문자가 하나도 없거나 무한히 많을 수 있다 |
+ | 앞의 문자가 하나 있거나 무한히 많을 수 있다 |
[] | 문자의 집합이나 범위를 나타내며 두 문자사이는 - 기호로 범위를 표현 |
{} | 문자가 나오는 횟수 또는 범위 |
() | 하나의 문자로 취급 |
| | 패턴 안에서 or 연산을 수행 |
\ | 정규 표현식 역슬래시(\)는 확장문자 |
{n} : 앞의 문자가 정확히 n번 나온다
{n,} : 앞의 문자가 적어도 n번 나온다
{n,m} : 앞의 문자가 적어도 n번부터 m까지 나온다
[^ ] : [] 안에서 ^가 있으면 not을 의미
\ : "\일반 문자" 는 특수문자 취급, "\특수문자" 는 그 문자자체를 의미
문자 클래스
[abc] | a,b, or c |
[^abc] | a,b,c 제외 |
[a-zA-z] | a~z 또는 A~Z 사이의 문자를 포함하는지 확인 ("-" : 범위지정) |
[a-d[m-p]] | a-d 또는 m-p 사이의 문자를 포함하는지 확인 ( = [a-dm-p] ) |
미리 정의된 문자 클래스
\b | 단어의 경계 |
\B | 단어가 아닌것에 대한 경계 |
\A | 입력의 시작 부분 |
\G | 이전 매치의 끝 |
\z | 입력의 끝 |
\Z | 입력의 끝이지만 종결자가 있는 경우 |
\d | 숫자 ( = [0-9] ) |
\D | 숫자를 제외한 모든 숫자 ( = [^0-9] ) |
\s | 공백문자 ( \t \n \x0B \f \r ) |
\S | 공백문자를 제외한 문자 ( = [^\s] ) |
\w | 알파벳 또는 숫자 ( = [a-zA-Z__0-9] ) |
\W | 알파벳 또는 숫자를 제외한 문자 ( = [^\w] ) |
(?!) | 대소문자 구분하지 않는다 |
자주 사용되는 정규 표현식
^[0-9]*$ | 숫자 |
^[a-zA-Z]*$ | 영문자 |
^[가-힣]*$ | 한글 |
\\w+@\\w+\\.\\w+(\\.\\w+)? | 이메일 |
^\d{2,3}-\d{3,4}-\d{4}$ | 전화번호 |
^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$ | 휴대전화번호 |
\d{6} \- [1-4]\d{6} | 주민등록번호 |
^\d{3}-\d{2}$ | 우편번호 |
^([a-zA-Z0-9]*)$ : 영어, 숫자만 입력 가능 (띄어쓰기 불가능)
^([a-zA-Z0-9\s]*)$ : 영어, 숫자만 입력 가능 (띄어쓰기 가능)
출처
'Back End > JAVA' 카테고리의 다른 글
[JAVA] Logger (0) | 2022.11.29 |
---|---|
[JAVA] isEmpty() 와 isBlank() (0) | 2022.11.28 |
[JAVA] 문자열 치환(Replace, ReplaceAll, ReplaceFirst) (0) | 2022.11.28 |
[JAVA] Pattern 클래스 사용 (0) | 2022.11.25 |