반응형
정규표현식
- 정규표현식(regular expression)은 문자열에서 특정한 규칙을 가지는 문자열의 집합을 찾아내기 위한 검색 패턴
- 정규 표현식 생성: 정규표현식 리터럴을 이용한 생성/RegExp 객체를 이용한 생성
- 정규표현식 리터럴: 슬래시로 시작하여 슬래시로 끝남. 필요시 플래그를 추가하여 검색 설정을 변경
/검색패턴/플래그
/* 정규표현식 리터럴을 이용한 생성 */
var regStr = /a+bc/;
/* RegExp 객체를 이용한 생성 */
var regObj = new RegExp("a+bc");
- 단순 검색: String 메서드 사용
메서드 | 설명 |
String.search(정규표현식) | 단순한 패턴 검색. 일치하는 문자열 중 첫 번쨰 문자열의 인덱스 반환 |
String.match(정규표현식) | 문자열에서 인수로 전달받은 정규표현식과 일치하는 문자열을 모두 찾아서 배열로 반환 |
String.replace(정규표현식, "$2 $3 $1") | 첫 번째 부분 문자열을 맨 마지막으로 이동 |
- 플래그: 정규표현식 생성시 플래그를 사용하여 기본 검색 설정 변경. 추후 변경 불가
플래그 | 설명 |
i | 검색 패턴을 비교할 때 대소문자를 구분하지 않도록 설정 |
g | 검색 패턴을 비교할 떄 일치하는 모든 부분을 선택하도록 설정 |
m | 검색 패턴을 비교할 때 여러 줄의 입력 문자열을 그 상태 그대로 여러 줄로 비교하도록 설정 |
y | 대상 문자열의 현재 위치부터 비교를 시작하도록 설정 |
- 특수 문자: 복잡한 조건을 사용하기 위해 사용
특수 문자 | 설명 |
\ | 역슬래시 다음에 일반문자가 나오면 이스케이프 문자. 특수 문자가 나오면 일반 문자로 해석 |
\d | 숫자를 검색. [0-9]와 동일 |
\D | 숫자가 아닌 문자를 검색. [^0-9]와 동일 |
\w | 언더스코어를 포함한 영문자 및 숫자를 검색. [A-Za-z0-9_]와 동일 |
\W | 언더스코어, 영문자, 숫자가 아닌 문자를 검색.[^A-Za-z0-9_]와 동일 |
\s | 띄어쓰기, 탭, 줄 바꿈 문자 등의 공백 문자를 검색 |
\S | 띄어쓰기, 탭, 줄 바꿈 문자 등의 공백 문자가 아닌 문자를 검색 |
\b | 단어의 맨 앞이나 맨 뒤가 패턴과 일치하는지를 검색 |
\xhh | 16진수 hh에 해당하는 유니코드 문자를 검색 |
\uhhhh | 16진수 hhhh에 해당하는 유니코드 문자를 검색 |
- quantifier: 특수 문자로 수량을 표현하는 양화사. 양화사 뒤에 ?사용시 가장 적은 문자를 가지도록 변경
양화사 | 설명 |
n* | 바로 앞의 문자가 0번 이상 나타나는 경우 검색. {0,}와 동일 |
n+ | 바로 앞을 문자가 1번 이상 나타나는 경우 검색. {1,}와 동일 |
n? | 바로 앞을 문자가 0번 또는 1번만 나타나는 경우 검색. {0, 1}와 동일 |
- 괄호
괄호 | 설명 |
a(b)c | 전체 패턴을 검색후 괄호안에 명시된 문자열을 저장 |
[abc] | 꺾쇠 괄호 안에 명시된 문자 검색 |
[0-9] | 꺾쇠 괄호 안에 명시된 숫자 검색 |
[\b] | 백스페이스 문자 검색 |
{n} | 앞을 문자가 정확히 n번 나타나는 경우 검색 |
{m, n} | 앞의 문자가 최소 m번 이상 최대 n번 이하로 나타나는 경우 검색 |
- 위치 문자: 패턴을 검색할 단어의 위치를 지정
위치 문자 | 설명 |
^a | 단어의 맨 앞에 위치한 패턴만 검색 |
a$ | 단어의 맨 뒤에 위치한 패턴만 검색 |
RegExp 객체
- RegExp 객체는 정규표현식을 구현한 JavaScript 표준 내장 객체
- 검색 패턴을 나타내는 정규표현식은 따옴표나 슬래시로 감싸야함
- 모든 RegExp 인스턴스는 RegExp.prototype으로부터 메서드와 프로퍼티를 상속 받음
프로퍼티/메서드 | 설명 |
new RegExp(pattern[, flag]) | RegExp 객체 생성 |
RegExp.prototype.global | 검색 패턴을 비교할 때 일치하는 모든 부분을 선택하도록 설정하는 플래그인 'g' |
RegExp.prototype.ignoreCase | 검색 패턴을 비교할 때 대소문자를 구분하지 않도록 설정하는 플래그인 'i' |
RegExp.prototype.multiline | 검색 패턴을 비교할 때 여러 줄의 입력 문자열을 그 상태 그대로 여러 줄로 비교하도록 설정하는 플래그인 'm' |
RegExp.prototype.source | 검색 패턴이 포함하고 있는 문자열 |
RegExp.prototype.exec(target) | 인수로 전달된 문자열에서 특정 패턴을 검색하여 패턴과 일치한 문자열 반환 |
RegExp.prototype.test(target) | 인수로 전달된 문자열에서 특정 패턴과 일치하는 문자열이 있는지 검색하여 Boolean 반환 |
RegExp.prototype.toString() | RegExp 객체의 정규표현식과 같은 의미를 가지는 정규표현식 리터럴 문자열 반환 |
반응형
'프로그래밍 언어 > Modern JavaScript' 카테고리의 다른 글
[JavaScript] 이벤트 (0) | 2024.08.09 |
---|---|
[JavaScript] BOM (0) | 2024.08.09 |
[Javascript] 예외처리 (0) | 2024.08.09 |