https://www.youtube.com/watch?v=CjoDIgDOHA4&t=3s
정규표현식
1951년에 수학자 Stephen Cole Kleene가 발표했다
발전 과정
1. 편집기의 패턴 매칭을 시작으로 사용
2. grep 명령어가 정규 표현식을 사용
3. vi. emacs 같은 편집기나 sed. awk 같은 유닉스 명령어에 정규 표현식이 추가
4. 이후. IDE와 여러 프로그래밍 언어의 표준 라이브러리로 지정됨
정규 표현식의 사용하게되면?
특정 패턴을 가지고 문자열을 찾을 수 있다
정규표현식이 있는것과 없는것의 차이
전화번호 유효성검증 요구사항으로 조건과 함께 설명해보겠습니다
1. 맨 앞 번호는 010으로 시작해야한다
2. 대시 ' - ' 로 구분한다
3. 구분도니 숫자에는 4자리의 숫자가 와야한다
정규표현식의 메타문자와 수량자를 알아보겠습니다
메타문자는 문자를 나타내는 문자
앞문자의 개수를 수량자라고 부릅니다
정규표현식 = 패턴구분자 시작 + 작성할 패턴 + 패턴구분자 끝 + 패턴 변경자
패턴구분자 시작과 끝은 / 로 표현
작성한 패턴은 패턴 표현
패턴 변경자는 g로 표현
" / 패턴 / g " 형식으로 나타나게 된다
메타문자
. | 모든 문자를 찾음 |
[ 문자 ] | 대괄호 안에있는 문자를 찾음 |
[ ^ 문자 ] | ^(not) 문자를 제외한 모든 문자를 찾음 |
문자 | 문자 | 문자 | or를 나타냄 여러개를 사용할때 사용 |
\s | 공백을 찾음 |
\d ( = [ 0-9 ] ) | 숫자 모두를 찾음 |
\w ( [ 0-9 a-z A-Z _ ] ) | 숫자0-9, 소문자a-z, 대문자A-Z, 밑줄을 찾음 |
수량자
강점 : 패턴으로 검증 가능 ! if문을 많이 안 써도 된다!
약점 : 너무 안 좋은 가독성! 유지보수하기 너무 힘들다!
간단한 검증의 경우 if문으로 해결하도록하자 메서드명을 통해 가독성을 높이자복잡한 검증이 있을때만 정규표현식을 사용하자. 주석을 달아서 가독성을 높이자
정규표현식은 어디에 쓰일까?
1. 컴파일러의 파서
2. CLI 환경을 주로 사용하는 경우 grep, sed, awk를 통해 쓰임
3. 이메일, 주소, 전화번호 규칙 검즘
4. 입력에서 불필요한 입력 검즘
5. 개발도구에서 문자열 치환
6. 로깅에서 찾아볼 때
7. 코딩테스트
5번과 7번을 예시로 만들어보겠습니다
개발도구에서의 문자열 치환
Intellij (인텔리제이) 는 정규표현식 문자열 치환을 지원합니다Mac : command + rWindow : Ctrl + r
인덱스 이름 앞에 idx_를 넣어주고 싶다면?
코딩 테스트에서 Java에서 정규표현식을 활용
1. 문자열에서 알파벳 대문자, 숫자, 더하기(+), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거해라
2. 문자열에서 마침표(.)가 3번이상 연속된 부분을 하나의 마침표(.)로 치환하라
정규표현식을 어떻게 학습하면 좋을까?
1. 정규표현식의 현실. 21년차 개발자도 모든 정규표현식을 외우고 있지 않다고 함
2. 알고리즘 처럼 감을 잃지 않도록 하는 게 중요하다고 생각
3. IDE에서 문자열을 replace 할 일이 있을 떄 정규표현식을 사용해 연습해보자
4. 혹시나 정규표현식을 마주했다면 분석해보자!
'경험 및 후기' 카테고리의 다른 글
[영상후기] OOP 객체지향 프로그래밍 (0) | 2022.07.11 |
---|---|
[영상후기] 제네릭 (0) | 2022.07.11 |
[영상후기] MVC 패턴 (0) | 2022.07.09 |
[영상후기] 도서관리 시스템 (AWS) (0) | 2022.07.09 |
(오답노트) 상속, 컬렉션 프레임워크 오답 (0) | 2022.06.27 |