정규 표현식
- 정규 표현식(regular expression)
- 문자열에서 특정한 규칙을 가지는 문자열의 집합을 찾아내기 위한 검색 패턴
- 모든 종류의 문자열 검색이나 교체 등의 작업에서 사용
- 정규 표현식의 생성
- 정규 표현식 리터럴을 이용한 생성
- /검색패턴/플래그
- RegExp 객체를 이용한 생성
- new RegExp(”검색패턴”)
- 예시
-
var regStr = /a+bc/; // 정규 표현식 리터럴을 이용한 생성 var regObj = new RegExp("a+bc"); // RegExp 객체를 이용한 생성 regStr; // /a+bc/ regObj; // /a+bc/
-
- 단순한 패턴 검색은 문자열 직접 나열
- var strReg1 = /abc/;
- targetStr.search(strReg1); ⇒ 해당 위치의 첫번째 인덱스 반환, 목찾으면 -1 반환
- 정규 표현식 리터럴을 이용한 생성
- 플래그 flags
- 정규 표현식 생성할 때 플래그를 사용하여 기본 검색 설정을 변경할 수 있다
- 설정된 플래그는 나중에 추가되거나 삭제될 수 없다.
- 플래그 종류
- i
- 대소문자 구분하지 않도록 설정
- g
- 일치하는 모든 부분 선택
- m
- 여러 줄의 입력 문자열을 그상태 그대로 여러 줄로 비교하도록 설정
- y
- 대상 문자열의 현재 위치부터 비교를 시작하도록 설정
- i
- 예시
-
var targetStr = "bcabcAB"; var strReg = /AB/; // 검색 패턴 비교 시 기본 설정으로 대소문자를 구분함. var strUsingFlag = /AB/i; // new RegExp("AB", "i")와 동일 targetStr.search(strReg); // 5 targetStr.search(strUsingFlag); // 2 -> 대소문자를 구분하지 않고 검색
-
- 특수 문자
- 더 복잡한 조건을 사용할 때 특수문자 사용
- 특수 문자 종류
- \
- \ 다음에 일반문자가 나오면 이스케이프 문자로 해석하고, 특수문자가 나오면 일반문자로 해석
- \d
- 숫자 검색
- /[0-9]/ 와 같음
- \D
- 숫자가 아닌 문자를 검색
- /[^0-9]/ 와 같음
- \w
- _를 포함한 영문자 및 숫자 검색
- \W
- _, 영문자, 숫자가 아닌 문자 검색
- \s
- 띄어쓰기, 탭, 줄바꿈 등 공백 문자 검색
- \S
- 띄어쓰기, 탭, 줄바꿈 등 공백 문자가 아닌 문자를 검색
- \b
- 단어의 맨 앞이나 맨 뒤가 패턴과 일치하는지 검색
- \xhh
- 16진수 hh에 해당하는 유니코드 문자 검색
- \uhhhh
- 16진수 hhhh에 해당하는 유니코드 문자 검색
- \
- 양화사(quantifier)
- 수량을 나타내는 특수문자
- 양화사 종류
- n*
- 바로 앞의 문자가 0번 이상 나타나는 경우 검색
- /{0, }/와 같음.
- n+
- 바로 앞의 문자가 1번 이상 나타나는 경우 검색
- /{1, } 와 같음
- n?
- 바로 앞의 문자가 0번 또는 1번만 나타나는 경우 검색
- /{0, 1}/과 같음
- n*
- 예시
-
var targetStr = "Hello World!"; var zeroReg = /lo*/; // 문자 'l' 다음에 문자 'o'가 0번 이상 나타나는 경우를 검색함. var oneReg = /lo+/; // 문자 'l' 다음에 문자 'o'가 1번 이상 나타나는 경우를 검색함. var zeroOneReg = /lo?/; // 문자 'l' 다음에 문자 'o'가 0 또는 1번만 나타나는 경우를 검색함. targetStr.search(zeroReg); // 2 targetStr.search(oneReg); // 3 targetStr.search(zeroOneReg); // 2
-
- 괄호 종류
- a(b)c
- 전체 패턴 검색 후 괄호 안 문자열 저장
- ex) abc 검색 후 b 저장
- [abc]
- []안에 명시된 문자 검색
- [0-3]
- []안에 명시된 숫자들 검색
- ex) 0~3까지 숫자 검색
- [\b]
- 백스페이스 문자 검색
- {n}
- 앞의 문자가 정확히 n번 나타나는 경우 검색
- n은 양의 정수
- {m, n}
- 앞의 문자가 최소 m번 이상 n번 이하로 나타나는 경우 검색
- m, n은 양의 정수
- a(b)c
- 위치문자
- 패턴을 검색할 단어의 위치 지정
- 위치문자 종류
- ^a
- 단어의 맨 앞에 위치한 해당 패턴만을 검색
- ex) a로 시작하는 단어의 a만을 검색
- a$
- 단어의 맨 뒤에 위치한 해당 패턴만을 검색
- ex) a로 끝나는 단어의 a만을 검색
- ^a
- 예시
-
var firstStr = "Php"; var secondStr = "phP"; var strReg = /^p/; // 'p'로 시작하는 단어의 'p'만을 검색함. firstStr.match(strReg); // null secondStr.match(strReg); // p
-
- RegExp 객체
- RegExp 객체
- 정규 표현식을 구현한 표준 내장 객체
- 문법
- new RegExp(검색패턴[, 플래그]);
- 검색패턴은 따옴표나 슬래시로 감싸야 한다.
- new RegExp(검색패턴[, 플래그]);
- 관련 메소드
- 정규식.exec(문자열);
- 인수로 전달된 문자열에서 특정 패턴을 검색하여 패턴과 일치하는 문자열 반환, 없으면 null 반환
- 정규식.test(문자열);
- 인수로 전달된 문자열에 특정 패턴과 일치하는 문자열이 있는지 검색 (true/false 반환)
- 정규식.exec(문자열);
- RegExp 객체
728x90
'JS & TS > JavaScript' 카테고리의 다른 글
[JavaScript] 예외처리 (0) | 2025.03.22 |
---|---|
[JavaScript] 이벤트 (0) | 2025.03.22 |
[JavaScript] 노드, 브라우저 객체 모델(BOM) (0) | 2025.03.22 |
[JavaScript] 객체 (0) | 2025.03.22 |
[JavaScript] 함수, 변수/함수 범위, 매개변수/인수 (0) | 2025.03.22 |