728x90

웹 프로그래밍을 위한 정규표현식 | 모두의 코딩:두딩 - 인프런

 

웹 프로그래밍을 위한 정규표현식 | 모두의 코딩:두딩 - 인프런

모두의 코딩:두딩 | 웹 프로그래밍에서 사용자의 입력값을 검증하기 위해 정규표현식이 필요하신가요?, 정규표현식(regular-expressions)은 선택이 아닌 필수우리는 프로그래밍 과정에서 정말 다양한

www.inflearn.com

 

강의 수강 배경

때는 지난해 말로 거슬러 올라가는데. .
당시 맡았던 업무가 중고거래 서비스에서 FDS(이상 거래 탐지 시스템)을 개발하는 팀에서 유저들의 채팅 분석을 통한 사기 채팅 감지였다.

계좌 번호를 이상하게 보내서 사기 의심 API를 교묘하게 피해가는 선례가 있었고, 이러한 사용자들을 가려내기 위해 채팅 내역에서 계좌 번호를 추출해야했다.
→ 이때, 1차적으로 적용했던 방법이 바로 정규 표현식.


이전까지는 비밀번호 검증 정규 표현식([a-zA-Z0-9\W_]{8,15}) 밖에 몰랐지만 이후 정규 표현식을 알아두면 개발 시, 다양하게 쓰인다는 필요성에 요 강의를 수강하게 되었다.

 

정규 표현식 기본

  • 정규 표현식
    • 패턴에 부합하는 문자열을 검색하거나 치환할 때 사용
    • e.g. 로그인/회원가입 시, 사용자 입력을 처리할 때 사용한다.

🔗  regex101: build, test, and debug regex

🔗 Regexper

 

기본 구성

/pattern/flag 형태로 구성

→ 검사하고 싶은 문자열에서 패턴에 부합되는 내용이 있는 지 탐색

  • 메타시퀀스
    • 알파벳 소문자 : 해당 영문자가 표현하는 문자를 포함하는 경우
    • 알파벳 대문자 : 해당 영문자가 표현하는 문자를 포함하지않는 경우
  • Escape 문자의 기능 $+ \alpha$ 의 역할 수행

 

  • 앵커
    • 문자열의 앞뒤 영역 선정 시 사용
    • e.g. 단어 영역에 포함되는 알파벳인지 확인

 

  • 문자 클래스
    • 탐색할 문자의 범위 산정
    • [...] 내부에서는 메타시퀀스를 제외한 문자들은 모두 일반 문자로 취급된다.

 

  • 수량자 (?, +, *)
    • 패턴의 등장 횟수 지정
    • 수량자 방식
      • Greedy 방식 : 최대한 많은 문자 탐색
      • Lazy 방식 : 최소한으로 적은 문자 탐색
      • 💡 필요하다면 최소한으로 확장한다!

 

  • 그룹핑과 캡처링
    • 특정 형태가 반복되는 문자열에서 패턴을 검색할 때 용이하다!



정규 표현식 응용

  • 대부분의 패턴들은 검색하면 알 수가 있다.

🔗 regex101: Community Pattern Library

  • 이런식으로 라이브러리에 검색하면 개발하면서 사용되는 범용적인 패턴을 검색해볼 수 있다.
728x90

'🌱 Dev Diary > 📄 TIL' 카테고리의 다른 글

Project 3. Memory Mapped Files  (0) 2023.01.19
Project 3. Stack Growth(2)  (0) 2023.01.19
Project 3. Stack Growth(1)  (0) 2023.01.19
Project 3. Anonymous Page(2)  (0) 2023.01.19
Project 3. Anonymous Page(1)  (0) 2023.01.19