문자 집합
| 패턴 | 의미 |
| a-zA-Z | 알파벳 |
| ㄱ-ㅎ가-힣 | 한글 |
| 0-9 | 숫자 |
| . | 모든 문자열 (줄바꿈 제외) |
| \d | 숫자 |
| \D | 숫자 제외 |
| \w | 밑줄 문자 포함 영,숫자 = [a-ZA-Z0-9_] |
| \W | \w 제외 |
| \s | space 공백 |
| \S | space 공백 제외 |
| \특수문자 | 특수문자 (메타문자 \ ^ $ . | [ ] ( ) * + ? { }) |
| \b | 문자 경계 (사용 예제 참고) |
| \B | \b 제외 |
\b 사용 예제



수량자
| 수량자 | 의미 |
| a{n,m} | a가 n번이상 m번이하 반복 |
| a{n,} | a가 n번 이상 |
| a{n} | a가 n번 |
| a? | a가 없거나 1개 = a{0,1} |
| a+ | a가 1번 이상 반복 = a{1,} |
| a* | a가 0번 이상 반복 = a{0, } |
| a*? | a가 0개 = a{0} |
| a+? | a가 1개 = a{1} |
그룹
| 기호 | 의미 |
| () | 감싼 문자열 그룹화, 캡쳐링 |
| (?: 패턴) | 그룹화, 캡쳐링 x |
| (?=) | 앞쪽 일치 |
| (?!) | !앞쪽 일치 |
| (?<=) | 뒤쪽 일치 |
| (?<!) | !뒤쪽 일치 |
| (? <이름>) | <>안에 그룹 이름 지정 |
캡쳐링이란?
추가 예정
자바 정규식
String 클래스 정규식 메서드
| boolean matches(String regex) | regex 패턴 매칭되는 값이 있는지 확인 |
| String replaceAll(String regex, String replacement) | 문자열 내 regex와 매치되는 모든 문자열 replacement로 변환 |
| String[] split(String regex) | regex 패턴과 매치되는 문자열을 구분자로 분할 |
Regex 패키지 클래스
java.util.regex
Pattern 클래스
| compile(String regex) | 정규표현식 패턴 작성 |
| matches(String regex, CharSequence input) | regex와 input가 일치하는지 확인 (전체 문자열이 일치해야 true 반환) |
| asPredicate() | 문자열을 일치시키는 데 사용할 수 있는 술어 작성 ??? |
| pattern() | 컴파일된 정규표현식 String 형태로 반환 |
| split(CharSequence input) | input을 주어진 인자값 패턴에 따라 분리 |
Matcher 클래스
| find() | 패턴이 일치하면 true 반환, 불일치하면 false. 반복실행 시 일치하는 부분 다음부터 이어서 실행 |
| find(int start) | start index 위치 이후부터 매칭 검색 |
| start() | 매칭되는 문자열의 시작위치 반환 |
| start(int group) | 지정된 그룹이 매칭되는 시작위치 반환 |
| end() | input을 주어진 인자값 패턴에 따라 분리 |
| end(int group) | 지정된 그룹 매칭되는 끝위치의 다음 문자위치 반환 |
| group() | 매칭된 부분 반환 |
| group(int group) | 그룹화되어 매칭된 패턴 중 group번째 부분 반환 |
| groupCount() | 괄호로 지정해서 그룹핑한 패턴의 전체 갯수 반환 |
| matches() | 패턴이 전체 문자열과 일치할 경우 true 반환 |
자주 쓰이는 표현식
이메일
/^(?=[^_])+[₩w-.]+@[a-zA-Z0-9]+₩.[a-zA-Z0-9]+$/
주민등록번호
/^[\d]{2}(?:(?:0[13578]|1[02])(?:[0-2]\d|3[01])|(?:02(?:[01]\d|2[0-9]))|(?:0[469]|11)(?:[0-2]\d|30))[-/.][1-4]\d{6}$/
휴대폰 번호
/^01\d[-\s/]\d{3,4}[-\s/]\d{4}$/g
추가 예정
정규표현식 테스트 사이트