정규표현식은 특정 패턴의 문자열을 찾기 위한 표현방식!!
이러한 언어를 형식언어(formal language)라고 한다.
정규표현식을 이용하면 특정 패턴에 매칭되는 문자열을 좀 더 쉽게 찾아낼 수 있다.
우선 말도 안되는 문장 하나를 만들어 보자..?
시원한 아이스아메리카노 한잔에 3000원 두잔에 5000원 기본 2shot~!!
/아/ : 아
를 하나
만 찾는다.
=> 시원한 아이스아메리카노 한잔에 3000원 두잔에 5000원 기본 2shot~!!
/아/g : 아
를 모두
찾는다.
=> 시원한 아이스아메리카노 한잔에 3000원 두잔에 5000원 기본 2shot~!!
/아메리카노/ : 아메리카노
를 찾는다.
=> 시원한 아이스아메리카노 한잔에 3000원 두잔에 5000원 기본 2shot~!!
/[아3s]/g : 아
,3
,s
를 모두 찾는다.
=> 시원한 아이스아메리카노 한잔에 3000원 두잔에 5000원 기본 2shot~!!
/[0-9]/g : 숫자 0~9
를 모두 찾는다.
=> 시원한 아이스아메리카노 한잔에 3000원 두잔에 5000원 기본 2shot~!!
/[a-zA-Z]/g : 영어 알파벳 대문자/소문자
를 모두 찾는다.
=> 시원한 아이스아메리카노 한잔에 3000원 두잔에 5000원 기본 2shot~!!
/[^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 : 대소문자 구분 Xm
- Multi line : 여러 행의 문자열에 대해 검색("문자열").match(/정규표현식/플래그)
- "문자열"에서 "정규표현식"에 매칭되는 항목들을 배열로 반환. ("문자열").replace(/정규표현식/,"대체문자열")
- "정규표현식"에 매칭되는 항목을 "대체문자열"로 변환("문자열").split(정규표현식)
- "문자열"을 "정규표현식"에 매칭되는 항목으로 쪼개어 배열로 반환.(정규표현식).test("문자열")
- "문자열"이 "정규표현식"과 매칭되면 true, 아니면 false 반환(정규표현식).exec("문자열")
- match 메서드와 유사하지만 첫번째 매칭 결과만 반환.TIL 15 day
프로그래머스나 백준에서 좋아요가 많은 우수? 코드들을 보면 정규표현식을 사용해서 많이들 풀었길래 이참에 공부하면서 찾아봤다....너무나 복잡한것....💥
공부합시다..ㅎㅎㅎ