본문 바로가기
youtube 영상 정리

[youtube 영상 정리]정규 표현식

by 근근커 2022. 7. 22.

https://www.youtube.com/watch?v=CjoDIgDOHA4&t=3s 

정규 표현식
능력
특정 패턴을 가지고 문자열을 찾을 수 있다.

메타문자
문자를 나타내는 문자
.:모든 문자
[]:대괄호 안에 들어가있는 문자를 찾음. 대괄호 안에서 ^는 not을 의미
|:or
\s:공백
\d:숫자
\w:영문자 모두. 숫자,밑줄

수량자
앞 문자의 갯수
+:앞 문자가 하나 이상
*:앞 문자가 0개 이상
?:앞 문자가 없거나 하나 있음
?:처음에 발견했을 때 쉬고 다시 찾음

정규표현식=패턴구분자 시작+작성할 패턴+패턴구분자 끝+패턴 변경자
핵심:메타문자와 수량자를 잘 파악하자.

강점:패턴으로 검증 가능,if문을 많이 안써도 된다.
단점:너무안좋은 가독성,유지보수가 힘들다

간단한 검증은 if문으로 해결하고 메소드 명을 통해 가독성을 높이고,
복잡한 검증이 있을 때만 정규표현식을 사용하고 주석을 달아 가독성을 높여야한다.

1.정규표현식의 이해
편집기의 패턴 매칭을 시작으로 사용
grep 명령어가 정규표현식을 사용
vi, emacs 같은 편집기나 sed,awk 같은 유닉스 명령어에 정규표현식이 추가
이후 IDE와 여러 프로그래밍 언어의 표준 라이브러리로 지정됨


2.정규표현식의 활용
2-1.개발도구에서 문자열 치환
2-2.코딩테스트

3.Java에서 정규표현식의 활용
3-1.문자열에서 알파뱃 대문자,숫자,더하기,밑줄,마침표를 제외한 모든 문자를 제거하라
3-2.문자열에서 마침표가 3번 이상 연속된 부분을 하나의 마침표로 치환하라

Pattern 객체는 불변 객체이다.
Pattern 클래스는 정적 팩토리 메소드를 사용하고 있으며 Thread-safe하다

Matcher 클래스 사용시 주의할 점
Matcher 객체는 reset()하고 다시 input을 넣어 재사용해줄 수 있지만 Thread-safe하지 못하다.
Thread-safe하게 사용하려면 Pattern 객체의 matcher()를 통해 Matcher를 생성한 뒤 사용

정규표현식을 학습하는 방법
1.정규표현식의 현실 21년차 개발자도 모든 정규표현식을 외우고 있지 않다고 함
2.알고리즘처럼 감을 잃지 않도록 하는게 중요하다
3.IDE에서 문자열을 replace할 일이 있을 때 정규표현식을 사용해 연습해보자
4.혹시나 정규표현식을 마주했다면 분석해보자

댓글