특정패턴의 문자열을 검색하는 도구
1. x
2. .
> abc, aac, acc,adc, azc, a1c, a홍c
ex) a..c > abbc, a길동c, a11c3. 출현횟수
3.1 생략**
3.2 ?
3.3.+
3.4 *
4. 선택, Choice
4.1 [열거값]
ex) [012] > 제 나이은 12살입니다. 제 동생은 10살이에요. 키는 160cm입니다. 몸무게는 50kg이에요.
ex) [나생는] > 제 나이은 12살입니다. 제 동생은 10살이에요. 키는 160cm입니다. 몸무게는 50kg이에요.
ex) [김이박]길동 > 홍길동, 김길동, 이길동, 박길동, 정길동, 최길동
ex) [김이박]?길동 > 홍길동, 김길동, 이길동, 박길동, 정길동, 최길동
ex) [0123456789]+ > 숫자가 최소 연속으로 1개 이상 나온 숫자들을 찾아라
ex) 주민등록번호
980101-1234567
[0123456789][0123456789][0123456789][0123456789][0123456789][0123456789]-[0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789]
* 선택에서 연속된 문자를 간단하게 표현하는 방법**
ex) 숫자 > [0123456789] > [0-9]
ex) 영어소문자 > [a-z]
ex) 영어대문자 > [A-Z]
ex) 영문자 [A-Za-Z]
ex) 한글 > [가-힣]
ex) 주민번호 > [0-9][0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9]
4.2 [^열거값]
ex) [0-9] > [^0-9] > 숫자가 아닌것만 찾음
5. 출현 횟수
5.1 {n}
5.2 {n,m}
5.3 {n, }
ex) a{1,}bc > ab, bc, abc, ac, abbc, abcc, aabc, aaabc > + 와 동일
ex) abc{0,} > ab, bc, abc, ac, abbc, abcc, aabc, aaabc > * 과 동일
ex) 주민번호 > [0-9]{6}-[0-9]{7} //현역에서 쓰는 모습
7. 줄임표현
7.1 \d or \D
7.2 \w or \W
7.3 \s or \S
//자바 > 여러 메서드의 인자값으로 정규 표현식을 지원한다.
//게시판 > 글쓰기 > 개인정보 (전화번호) 마스킹
String txt = "안녕하세요. 홍길동입니다. 제 연락처는 010-7894-5612 010.4567.8456입니다. 연락주세요. 혹시 연락이 안되면 다른 번호 010-1234-4567 01012344567로 연락주세요";
System.out.println(txt.replaceAll("[0-9]{3}-[0-9]{3,4}-[0-9]{4}", "xxx-xxxx-xxxx")
.replaceAll("[0-9]{3}.[0-9]{3,4}.[0-9]{4}", "xxx-xxxx-xxxx")
.replaceAll("[0-9]{3}[0-9]{3,4}[0-9]{4}", "xxx-xxxx-xxxx"));
System.out.println(txt.replaceFirst("[0-9]{3}-[0-9]{3,4}-[0-9]{4}", "xxx-xxxx-xxxx"));