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]* 알파벳이 없을수도 무수히 많을 수도 있음 $ 문자열종료 입니다.
위와 같이 정규식을 이용하면 빠르고 정확하게 제한·검색 조건을 설정할 수 있습니다.
'IT > JAVA' 카테고리의 다른 글
[JAVA의 예외 처리] Try-Catch-Finally 구문! (0) | 2021.04.30 |
---|