정규 표현식이란?
- 문자열에서 특정한 문자를 찾아내는 도구
관련 사이트
- https://regexper.com/
- 정규 표현식을 시각화해서 보여주는 사이트
- http://gskinner.com/RegExr/
- 정규 표현식을 실시간으로 테스트해볼 수 있는 사이트
- http://www.regexr.com/
- 정규 표현식에 대한 도움말과 테스트 도구들을 제공하는 사이트
정규 표현식 생성 방법
- 컴파일
- 검출하고자 하는 패턴을 만드는 단계, 정규 표현식 객체를 만들어야 한다.
- 실행
- 컴파일 단계에서 만든 정규 표현식 객체를 통해서 특정 문자열을 검출하는 단계
정규 표현식 - 컴파일 단계
방법은 두 가지가 있으며, 두 가지 모두 같은 결과를 만들지만 각자가 가진 장단점이 다르다.
- 정규 표현식 리터럴
- var pattern = /찾을 문자/;
- 정규 표현식 객체 생성자
- var pattern = new RegExp(‘찾을 문자’);
- 정규 표현식의 특수 기호
- . : 문자 한 자리를 의미한다.
정규 표현식 - 실행 단계
- 기본 조건
- var pattern = /a/;
- RegExp.exec(문자열)
- console.log(pattern.exec(‘abcdef’));
- 출력 : “a”
- 이유 : 정규 표현식에서 표현한 a가 존재하기 때문에, 배열을 반환한다.
- console.log(pattern.exec(‘bcdef’));
- 출력 : null
- 이유 : 정규 표현식에서 표현한 a가 존재하지 않기 때문에
- console.log(pattern.exec(‘abcdef’));
- RegExp.test(문자열)
- console.log(pattern.test(‘abcdef’));
- 출력 : true
- 이유 : 정규 표현식에서 표현한 a가 존재하기 때문에
- console.log(pattern.test(‘bcdef’));
- 출력 : null
- 이유 : 정규 표현식에서 표현한 a가 존재하지 않기 때문에
- console.log(pattern.test(‘abcdef’));
정규 표현식 - 문자열 메소드
- 기본 조건
- var pattern = /a/;
- String.match(객체명)
- RegExp.exec(문자열)와 비슷하다.
- console.log(‘abcdef’.match(pattern));
- 출력 : “a”
- 이유 : 정규 표현식에서 표현한 a가 존재하기 때문에, 배열을 반환한다.
- console.log(‘bcdef’.match(pattern));
- 출력 : null
- 이유 : 정규 표현식에서 표현한 a가 존재하지 않기 때문에
- String.replace(객체명, 교체 문자열)
- console.log(‘abcdef’.replace(pattern, ‘A’));
- 출력 : Abcdef
- console.log(‘abcdefa’.replace(pattern, ‘A’));
- 출력 : Abcdefa (맨 앞 글자만 바뀐다.)
- console.log(‘abcdef’.replace(pattern, ‘A’));
정규 표현식 - 옵션
- 기본 조건
- var pattern = /a/;
- i 옵션 : 대소문자를 구분 하지 않는다.
- g 옵션 (Global): 검색된 모든 결과를 리턴한다.
- 옵션은 동시에 사용 가능하다
정규 표현식 - 캡쳐
※ 괄호 안의 패턴은 마치 변수처럼 재사용 할 수 있다. ($ 기호 사용)
정규 표현식 - 치환
정규 표현식 - 패턴 (문자)
- \w : A ~ Z, a ~ z, 0 ~9 모두 포함
- \s : 공백 (White Space)
정규 표현식 - 패턴 (기호)
- () : 그룹화
- + : 앞의 것이 하나 이상인 경우, 패턴이 만약 \w+라면 문자열이 ‘#’이면 실패, ‘abc’면 성공이다.