Back End/JAVA

[JAVA] 정규표현식

리오토리 2022. 11. 25. 15:32

 

정규표현식(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]*)$ : 영어, 숫자만 입력 가능 (띄어쓰기 가능)

 

 

출처  

https://gh402.tistory.com/54

https://crazykim2.tistory.com/602

'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