본문으로 바로가기

정규 표현식

정규표현식(regular expression)은 문자열에서 특정한 문자를 찾아내는 도구입니다. 

이 도구를 이용하면 수십줄이 필요한 작업을 한줄로 끝낼 수 있는 하나의 언어라고 할 수 있습니다.



개념

정규표현식(Regular Expression)은 문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 '검색'하거나 '치환'하는 과정을 매우 간편하게 처리 할 수 있도록 하는 수단입니다.



정규 표현식 생성

정규표현식은 두가지 단계로 이루어집니다. 하나는 컴파일(compile) 다른 하나는 실행(execution)입니다. 

 

우선 컴파일부터 알아봅니다. 

컴파일이란 검출하고자 하는 패턴을 만드는 일이고, 우선 정규표현식 객체를 만들어야 합니다. 


객체를 만드는 방법은 두가지가 있습니다. 

a라는 텍스트를 찾아내는 정규표현식을 만들어 봅니다.


JavaScript
//정규표현식 리터럴
var pattern = /a/

// 정규표현식 객체 생성자
var pattern = new RegExp('a');


두가지 모두 같은 결과를 만들지만 각각 장단점이 있습니다. 

정규표현식 메소드 실행 정규표현식을 컴파일해서 객체를 만들었다면 이제 문자열에서 원하는 문자를 찾아내야 합니다.



RegExp.exec()와 RegExp.test()


JavaScript
// RegExp.exec() => 필요한 정보(문자)를 추출하는데 목적
console.log(pattern.exec('abcdef')); // ["a"]
// 실행결과는 문자열 a를 값으로 하는 배열을 리턴한다.

console.log(pattern.exec('bcdefg')); // null
// 인자 'bcdef'에는 a가 없기 때문에 null을 리턴한다.

// RegExp.test() => 패턴이 있는지 없는지를 테스트하는데 목적
// test는 인자 안에 패턴에 해당되는 문자열이 있으면 true, 없으면 false를 리턴한다.
console.log(pattern.test('abcdef')); // true
cnosole.log(pattern.test('bcdefg')); // false




문자열 객체와 정규표현식

문자열 객체의 몇몇 메소드는 정규표현식을 사용할 수 있습니다.


String.match()

RegExp.exec()와 비슷합니다.

JavaScript
console.log('abcdef'.match(pattern)); // ["a"]
console.log('bcdefg'.match(pattern)); // null


String.replace()

문자열에서 패턴을 검색해서 이를 변경한 후에 변경된 값을 리턴합니다.

JavaScript
var pattern = /a/;
var str = "abcdef";
console.log(str.replace(pattern, 'A'));  // Abcdef




정규 표현식 옵션

정규표현식 패턴을 만들 때 옵션을 설정할 수 있습니다. 

옵션에 따라서 검출되는 데이터가 달라집니다.


i

i를 붙이면 대소문자를 구분하지 않느다.

JavaScript
var xi = /a/;
console.log("Abcde".match(xi)); // null
var oi = /a/i;
console.log("Abcde".match(oi)); // ["A"];


g

g를 붙이면 검색된 모든 결과를 리턴한다.

JavaScript
var xg = /a/;
console.log("abcdea".match(xg));
var og = /a/g;
console.log("abcdea".match(og));






Jaehee's e-room


'JavaScript > 정규표현식(RegExp)' 카테고리의 다른 글

정규 표현식 참고 자료 - RegExp  (0) 2016.02.14