1. 정규표현식
문자열의 패턴을 표현하는데 사용되는 특별한 문자열
java.util.regex 패키지를 통해 사용
다양한 문자열 검색, 추출, 대체 등의 작업에 유용
2. 요소와 의미
2.1. 문자 클래스(Character Class): 대괄호 [ ]를 사용하여 문자들의 집합을 나타냄
한 문자만 매칭시키려면 해당 문자를 대괄호 안에 적으면 됨
예) [abc]는 'a', 'b', 'c' 중 하나의 문자와 일치
2.2. 범위(Range): 하이픈 -을 사용하여 문자 범위를 나타냄
예) [a-z]는 알파벳 소문자 중 하나와 일치
2.3. 부정(Negation): ^ 기호를 문자 클래스 안에서 사용하면 해당 문자 클래스와 매치하지 않는 문자들과 일치
예) [^0-9]는 숫자가 아닌 문자와 일치
2.4. 메타 문자(Meta Characters):
| 표현 | 설명 |
| . | 어떤 문자와도 일치 (줄바꿈 문자 제외) |
| * | 앞의 문자가 0번 이상 나타날 수 있음 |
| + | 앞의 문자가 1번 이상 나타날 수 있음 |
| ? | 앞의 문자가 0번 또는 1번 나타날 수 있음 |
| ^ | 문자열의 시작을 나타냄 |
| $ | 문자열의 끝을 나타냄 |
| \ | 이스케이프 문자로 다음 문자를 일반 문자로 취급함 |
2.5. 수량자(Quantifiers): *, +, ? 외의 문자의 수량을 조절하는 방법
| 표현 | 설명 |
| {n} | 앞의 문자가 정확히 n번 나타날 때 매치함 |
| {n,} | 앞의 문자가 최소 n번 이상 나타날 때 매치함 |
| {n,m} | 앞의 문자가 최소 n번 이상 최대 m번 이하로 나타날 때 매치함 |
2.6. 그룹화(Grouping): 괄호 ()를 사용하여 그룹을 지정
그룹을 사용하면 해당 부분 패턴이 하나의 단위로 처리됨
예) (ab)+는 "ab", "abab", "ababab" 등과 일치
2.7. OR 연산자(|): 파이프 기호 |는 OR 연산자로, 여러 패턴 중 하나와 일치할 때 사용
예) (a|b)는 'a' 또는 'b'와 일치
2.8. 사전 정의된 문자 클래스(Predefined Character Classes): 자주 사용되는 문자 클래스
| 표현 | 설명 |
| \d | 숫자(digit)와 일치, [0-9]와 동일 |
| \D | 숫자가 아닌 문자와 일치, [^0-9]와 동일 |
| \w | 단어(word) 문자와 일치, [a-zA-Z0-9_]와 동일 |
| \W | 단어 문자가 아닌 문자와 일치, [^a-zA-Z0-9_]와 동일 |
| \s | 공백 문자와 일치 (공백, 탭, 줄바꿈 등) |
| \S | 공백 문자가 아닌 문자와 일치 |
3. 상용 정규표현식
특수문자 체크 정규식
const regExp = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"]/g;
모든 공백 체크 정규식
const regExp = /\s/g;
숫자만 체크 정규식
const regExp = /[0-9]/g;
이메일 체크 정규식
const regExp = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i;
핸드폰번호 정규식
const regExp = /^\d{3}-\d{3,4}-\d{4}$/;
일반 전화번호 정규식
const regExp = /^\d{2,3}-\d{3,4}-\d{4}$/;
아이디나 비밀번호 정규식
const regExp = /^[a-z0-9_]{4,20}$/;
휴대폰번호 체크 정규식
const regExp = /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/;
4. 관련 메서드
4.1. Pattern 클래스
4.2. Matcher 클래스
[ JAVA ] 정규표현식 - (예) 주민등록번호, 우편번호, 국어점수
1. 주민등록번호 // 주민등록번호 000000-0000000 // resident registration number String rrn = "123456-1234567"; String regex = "[0-9]{6}-\\d{7}"; // 숫자 [0-9] \d // 반복횟수 ?(0,1) +(1,여러번) *(0, 여러번) // {n} : n번 와야함 //{
process-y.tistory.com
'Back-End > Java' 카테고리의 다른 글
| [ JAVA ] 별 출력하기 (삼격형, 마름모, 모래시계 등) (0) | 2023.07.23 |
|---|---|
| [ JAVA ] 구구단 출력하기 (0) | 2023.07.23 |
| [ JAVA ] 형식 지정자 (0) | 2023.07.20 |
| [ JAVA ] char to String / String to char / String to char[] (0) | 2023.07.19 |
| [ JAVA ] day05 Quiz (0) | 2023.07.19 |