[Javascript] 정규 표현식

[원본 링크]

자바스크립트는 문법의 일부로 정규 표현식을 제공한다.
정규표현식(이하 정규식)은 간단하고 직관적인 표현으로 문자열을 검색하고 수정할 수 있게 해주는 기똥찬 녀석이다.

여기선 정규식 자체의 문법보단, 자바스크립트의 문법을 위주로 쓴다.

일단, 자바스크립트에선 정규식은 2가지 방법으로 표현될 수 있다.
1.객체 생성 스타일과 image

image

2.슬래시로 감싼 리터럴 표현 image

image

편한걸로 골라쓰되, 표현식을 동적으로 변경할 일이 있다면 객체 생성법을 쓰면 되겠다.


여튼 생성한 정규식을 문자열에 매칭시키려면, exec 메서드를 쓰면 된다.
RegExp.exec(문자열)
위와 같이 하면, 문자열에서 정규식에 해당하는 부분을 가져온다. image

image F가 첫번째로 등장하는 인덱스 1 등을 딕셔너리 형태로 잘 가져와준다.

RegExp.test(문자열)
이와 다르게 test 함수는 매칭되는게 있는지 없는지만 true/false로 반환한다. image

image

위에서는 정규식 객체의 메서드를 사용했지만, 문자열에도 정규식을 위한 메서드가 존재한다.

String.match(정규식)
match 메서드는 exec 메서드와 동일하다. image

image

String.search(정규식)
이건 인덱스만 바로 반환한다. image

image

String.replace(정규식, 바꿀내용)
이건 해당하는 패턴의 문자열을 교체한다.
하나만. image

image

String.split(정규식)
이건 정규식에 해당하는 문자열을 구분자로 삼아서 문자열을 몽땅 쪼개버리고 배열로 반환한다. image

image


플래그
정규식엔 플래그란게 있다. 표현식 바로 뒤에 붙이는건데.
g(전역), i(대소문자 구분X),
y(현재위치에서 검색), m(멀티라인 검색) 등이 있다.

예를들어, 원래 문자열의 replace는 하나의 문자열만 찾아 바꾸지만, 정규식에 g 플래그를 달면 전부 바꾸게 된다. image

image

객체생성으로 표현할 경우, 플래그는 2번째 인자로 전달한다. image

image


참조
https://beomy.tistory.com/21
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/RegExp