TIL 15 | JavaScript - 정규표현식

Yonghyun·2021년 8월 21일
0

JavaScript & React

목록 보기
10/31

정규표현식이란?

정규표현식은 특정 패턴의 문자열을 찾기 위한 표현방식!!
이러한 언어를 형식언어(formal language)라고 한다.

정규표현식을 사용하는 이유

정규표현식을 이용하면 특정 패턴에 매칭되는 문자열을 좀 더 쉽게 찾아낼 수 있다.

정규표현식 활용 방법

우선 말도 안되는 문장 하나를 만들어 보자..?
시원한 아이스아메리카노 한잔에 3000원 두잔에 5000원 기본 2shot~!!

  1. /아/ : 하나만 찾는다.
    => 시원한 이스아메리카노 한잔에 3000원 두잔에 5000원 기본 2shot~!!

  2. /아/g : 모두 찾는다.
    => 시원한 이스메리카노 한잔에 3000원 두잔에 5000원 기본 2shot~!!

  3. /아메리카노/ : 아메리카노를 찾는다.
    => 시원한 아이스아메리카노 한잔에 3000원 두잔에 5000원 기본 2shot~!!

  4. /[아3s]/g : ,3,s를 모두 찾는다.
    => 시원한 이스메리카노 한잔에 3000원 두잔에 5000원 기본 2shot~!!

  5. /[0-9]/g : 숫자 0~9를 모두 찾는다.
    => 시원한 아이스아메리카노 한잔에 3000원 두잔에 5000원 기본 2shot~!!

  6. /[a-zA-Z]/g : 영어 알파벳 대문자/소문자를 모두 찾는다.
    => 시원한 아이스아메리카노 한잔에 3000원 두잔에 5000원 기본 2shot~!!

  7. /[^0-9]/g : 숫자 0~9가 아닌 것을 모두 찾는다.
    => 시원한 아이스아메리카노 한잔에 3000원 두잔에 5000원 기본 2shot~!!

정규표현식의 형식

/패턴/플래그

  • 슬래시 사이에는 매칭시킬 패턴을 입력한다.
  • 두번째 슬래시 다음에는 옵션을 설정하는 플래그를 써준다.

정규표현식 매칭 패턴

  • a-zA-Z - 영어알파벳(-로 범위를 지정)
  • ㄱ-ㅎ가-힣 - 한글 문자(-로 범위를 지정)
  • 0-9 - 숫자(-로 범위를 지정)
  • . - 줄바꿈을 제외한 공백을 포함하는 모든 문자열
  • \d - 숫자
  • \D - 숫자만 제외
  • \w - 영어 알파벳, 숫자, 언더스코어(_)
  • \W - \w를 제외한 모든 것
  • \s - space 공백
  • \S - space 공백을 제외한 모든 것
  • \특수기호 - 특수기호

정규표현식 검색 패턴

  • | - OR
  • [] - 괄호안의 문자들 중 하나
  • [^문자] - 괄호안의 문자를 제외한 것
  • ^문자열 - 특정 문자열로 시작(괄호 제외)
  • 문자열$ - 특정 문자열로 끝
  • () - 그룹 검색 및 분류
  • (?:패턴) - 그룹 검색(분류X)
  • \b - 단어의 처음/끝
  • \B - 단어의 처음과 끝을 제외한 나머지

정규표현식 수량 패턴

  • ? - 없거나 한개
  • * - 없거나 있거나
  • + - 최소 한개이상
  • {n} - n개
  • {Min,} - 최소 Min개 이상
  • {Min,Max} - 최소 Min개 이상, 최대 Max개 이하

정규표현식 플래그

  • g - Global : 모든 문자 검색
  • i - Ignore Case : 대소문자 구분 X
  • m - Multi line : 여러 행의 문자열에 대해 검색

정규표현식 주요 메서드

  • ("문자열").match(/정규표현식/플래그) - "문자열"에서 "정규표현식"에 매칭되는 항목들을 배열로 반환.
  • ("문자열").replace(/정규표현식/,"대체문자열") - "정규표현식"에 매칭되는 항목을 "대체문자열"로 변환
  • ("문자열").split(정규표현식) - "문자열"을 "정규표현식"에 매칭되는 항목으로 쪼개어 배열로 반환.
  • (정규표현식).test("문자열") - "문자열"이 "정규표현식"과 매칭되면 true, 아니면 false 반환
  • (정규표현식).exec("문자열") - match 메서드와 유사하지만 첫번째 매칭 결과만 반환.

TIL 15 day
프로그래머스나 백준에서 좋아요가 많은 우수? 코드들을 보면 정규표현식을 사용해서 많이들 풀었길래 이참에 공부하면서 찾아봤다....너무나 복잡한것....💥
공부합시다..ㅎㅎㅎ

profile
Life is all about timing.

0개의 댓글