-
[JS] 정규 표현식의 패턴과 플래그Javascript/이론 2022. 12. 21. 22:06반응형
정규 표현식 기본 구성
/pattern/flags
정규 표현식은 위와 같이 구성된다. 두 슬래시 사이에 패턴이 위치하고 마지막으로 플래그가 위치한다. 정규 표현식은 아래 코드에서 확인 가능하듯이 두 가지 문법으로 사용된다.
regexp = new RegExp("pattern", "flags");
regexp = /pattern/flags;
정규 표현식의 패턴
문자 / 숫자 / 특수기호 매칭 검색 기준 패턴 특징 패턴 특징 a-zA-Z 모든 영어 알파벳 | or ㄱ-ㅎ가-힣 모든 한글 문자 [ ] 대괄호 안의 문자들에 대한 or 0-9 모든 숫자 [^문자] 대괄호 안의 문자를 제외한 경우 . 모든 문자열 ^word word로 시작하는 문자열 \특수기호 해당하는 특수기호
ex. \* \^ \& \? 등word$ word로 끝나는 문자열 \d 숫자 반복 패턴 \D 숫자 이외의 것 패턴 특징 \w 모든 영어, 숫자 및 _
ex. [a-zA-Z0-9_]abc? ab 그리고 0 또는 1개의 c를 포함한 문자열 \W 모든 영어, 숫자 및 _ 이외의 것 abc* ab 그리고 0~ 개의 c를 포함한 문자열 \s 공백 abc+ ab 그리고 1~ 개의 c를 포함한 문자열 \S 공백 이외의 것 abc*? ab 그리고 0 개의 c를 포함한 문자열 \b 한쪽은 문자, 다른 한쪽은 문자가 아닌 단어
\bword\b => wdfword word dkfeworddabc+? ab 그리고 1 개의 c를 포함한 문자열 \B \w에 일치하는 단어 경계 abc{n} ab 그리고 n 개의 c를 포함한 문자열 \x 16진수 문자 abc{n, } ab 그리고 n~ 개의 c를 포함한 문자열 \0 8진수 문자 abc{n, m} ab 그리고 n~m 개의 c를 포함한 문자열 \u 유니코드 문자 그룹화 패턴 \n 줄바꿈 문자 패턴 특징
() 그룹화, 캡쳐
위 abc에서 a(bc)와 같이 그룹화할 경우,
a와 x개의 bc를 포함한 문자열에 매칭 하는게 가능하다.(?<name>word) 그룹에 name을 이름으로 지정한다. (?: word) 그룹화(캡쳐를 반환하지 않음) 패턴 특징 패턴 특징 d(?=r) r이 바로 뒤에 있는 d를 매칭(r은 포함되지 않음) d(?!r) r이 바로 뒤에 없는 d를 매칭((r은 포함되지 않음) (?<=r)d r이 바로 앞에 있는 d를 매칭(r은 포함되지 않음) (?<!r)d r이 바로 앞에 없는 d를 매칭(r은 포함되지 않음) -추가-
(?=.*/d) : 문자열에 적어도하나의 숫자가 포함되어 있는지 확인
(?!.*\s) : 문자열에 공백문자가 없는 모든 문자열과 일치
정규 표현식의 플래그
플래그 특징 플래그 특징 i 대소문자를 구별하지 않는다 s 개행 문자도 포함하도록 한다 g 모든 패턴을 검색한다. u 유니코드 전체를 지원한다. m 행위 바뀌더라도 검색한다. y 특정 위치에서 검색을 진행한다. 반응형'Javascript > 이론' 카테고리의 다른 글
[ JS ] rotate3d 값 얻기 (0) 2023.02.08 [ JS ] Date 객체와 메서드 (0) 2023.01.01 [ JS ] 표준 입력 - process.stdin (0) 2022.12.29 [JS] .length는 함수가 아니라 프로퍼티이다. (0) 2022.12.28 [JS] 비트 연산자 - "&", "|", "^", "~", "<<", ">>", ">>>" (0) 2022.12.14