참고동영상
https://www.youtube.com/watch?v=CjoDIgDOHA4&t=3s
정규표현식의 능력은 특정 패턴을 가지고 문자열을 찾을 수 있다.
정규표현식 = 패턴구분자 시작 + 작성할 패턴 + 패턴구분자 끝 + 패턴 변경자
- 메타문자
., C, U를 찾는다면 ?
-> /[.CU]/g
., C, U를 제외하고 찾는다면?
-> /[^.CU]/g
| : OR
\s : 공백
\d : 숫자 ([0-9])
\w : 영문자 모두, 숫자, 밑줄 ([0-9a-zA-Z_])
- 수량자
+ : 앞 문자가 하나 이상 ([1,])
* : 앞 문자가 0개 이상 ([0,])
[n, m] : 앞 문자가 n개 이상, m개 이하
[n, ] : 앞 문자가 n개 이상
[n] : 앞 문자가 n개
? : 앞 문자가 없거나 하나 있음 ([0,1])
? : 처음에 발견했을 때 쉬고 다시 찾음
^ : 찾으려는 문자열의 처음을 뜻함
$ : 찾으려는 문자열의 끝을 뜻함
정규표현식의 장단점
장점 : 패턴으로 검증 가능! if문을 많이 안 써도 된다.
약점 : 너무 안 좋은 가독성! 유지보수 하기 너무 힘들다.
-> 간단한 검증일 때는 if문으로 해결하자. 메서드 명을 통해 가독성을 높이자.
복잡한 검증이 있을 때만 정규표현식을 사용하자. 주석을 달아서 가독성을 높이자.
정규표현식이 쓰이는 곳
1. 컴파일러의 파서
2. CLI 환경을 주로 사용하는 경우, grep, sed, awk를 통해 쓰임
3. 이메일, 주소, 전화번호 규칙 검증
4. 입력에서 불필요한 입력 검증
5. 개발도구에서 문자열 치환
6. 로깅에서 찾아볼 때
7. 코딩테스트
개발자도구에서 문자열 치환
인덱스 이름 앞에 idx_를 넣어주고 싶다면?
PATTERN : '([^']+)' ON Replace String : 'idx_$1' ON
Java에서 정규표현식의 활용
1. 문자열에서 알파벳 대문자.숫자.더하기(+).밑줄(_).마침표(.)를 제외한 모든 문자를 제거하라. 2. 문자열에서 마침표(.)가 3번 이상 연속된 부분을 하나의 마침표(.)로 치환하라
1
2
3
4
5
6
7
8
9
10
11
|
private String removeChar(String input) {
return input.replaceAll( regex: "[^A-Z0-9+_.]", replacement: "");
}
private String changeDot(String input) {
return input.replaceAll( regex: "[.]{3,}", replacement: ".");
}
|
cs |
정규표현식 학습법
1. 정규표현식의 현실. 21년 차 개발자도 모든 정규표현시글 외우고 있지 않다고 함
2. 알고리즘처럼 감을 잃지 않도록 하는게 중요함
3. IDE에서 문자열을 replace할 일이 있을 때 정규표현식을 사용해 연습해보자!
4. 혹시나 정규표현식을 마주했다면 분석해보자
'IT Study' 카테고리의 다른 글
[ 동영상 시청 ] 프론트엔드에서 Component란? (0) | 2022.07.24 |
---|---|
[ 동영상 시청 ] 웹 접근성 & 표준 (0) | 2022.07.24 |
[동영상 시청] 도서관관리시스템 (0) | 2022.07.11 |
[동영상 시청] 애자일 (0) | 2022.07.11 |
[동영상 시청] MVC 패턴 (0) | 2022.07.08 |