IT/JAVA

[JAVA] 정규식이란? 자주 사용하는 정규식

FintechPark 2021. 3. 5. 18:01

1. 정규식이란


특정한 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 형식 언어입니다. 개발자가 원하는 형식의 데이터만 입력 받고 싶거나, 찾고 싶을 때 쓰이는 매우 효율적인 문법입니다.

 

ex)

알파벳만 찾고 싶을 때 -> ^[a-zA-Z]*$

숫자 -> ^[0-9]*$

 

 

2. 왜 정규식이 필요한가?


회원가입 서비스를 만들고자 합니다. 비밀번호를 영문+숫자+특수문자의 조합으로만 가능하게 하고 싶은데, 이것을 코딩으로 하자니 너무 비효율적입니다. 이때, 정규식을 쓰면 간편하고 효율적으로 서비스 제공이 가능합니다.

 

 

3. 정규식 기본 설명


 

표현식 설명
^ 문자열의 시작
$ 문자열의 종료
* *의 앞 문자가 무수히 많을 수 있음
+ +의 앞 문자가 하나 이상
? ?의 앞 문자가 없거나 하나 존재
[] 문자의 집합이나 범위, []내 ^가 들어길 시 not을 뜻함
{} 횟수 또는 범위
| or 연산
\b 단어의 경계
\B 단어가 아닐 시 경계
\s 공백 문자
\S 공백 문자가 아닌 나머지 문자
\w 알파벳이나 숫자
\W 알파벳이나 숫자를 제외한 문자
\d 숫자, [0-9]와 동일
\D 숫자를 제외한 모든 문자

 

 

4. 자주 사용하는 정규식


 

구분 정규식
영문자 ^[a-zA-Z]*$
숫자 ^[0-9]*$
한글 ^[가-힣]*$
비밀번호(숫자·문자·특수 포함 8~15자리) ^.*(?=^.{8,15}$)(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@#$%^&+=]).*$
이메일 ^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$
휴대전화 ^\\d{3}-\\d{3,4}-\\d{4}$
html 태그 찾기 <[^>]*></[^>]*>

 

예를 들어 영문자의 경우, ^ 문자열 시작 [a-zA-Z]* 알파벳이 없을수도 무수히 많을 수도 있음 $ 문자열종료 입니다.

 

 

[html 태그를 정규식으로 찾을 수 있습니다]

 

위와 같이 정규식을 이용하면 빠르고 정확하게 제한·검색 조건을 설정할 수 있습니다.

'IT > JAVA' 카테고리의 다른 글

[JAVA의 예외 처리] Try-Catch-Finally 구문!  (0) 2021.04.30