LHJ

I'm a FE developer.

17.17 위치 지정

31 May 2020 » js_lj

17.17 위치 지정

문자열을 다루다 보면 ‘~~으로 시작하는 문자열’, ‘__으로 끝나는 문자열’, ‘그 문자열의 처음’ 하는 식으로 생각하게 될 때가 아주 많습니다.
여기서 ~~.__을 정규식의 앵커(anchor)라고 부릅니다.
앵커에는 두 가지 종류가 있습니다.
^는 문자열의 맨 처음을 나타내고, $는 문자열의 마지막을 나타냅니다.

const input = "It was the best of times, it was the worst of times";
const beginning = input.match(/^\w+/g);     // "It"
const end = input.match(/\w+$/g);           // "times"
const everything = input.match(/^.*$/g);    // input과 같습니다.
const nomatch1 = input.match(/^best/ig);
const nomatch2 = input.match(/worst$/ig);

그런데 앵커에는 특이한 기능이 있습니다.
문자열에 줄바꿈 문자가 들어있다면 각 줄의 처음과 끝을 찾을 수 있습니다.
각 줄의 처음과 끝을 찾으면 m 플래그를 쓰면 됩니다.

const input = "One line\nTwo lines\nThree lines\nFour";
const beginnings = input.match(/^\w+/mg);   // ["One", "Two", "Three", "Four"]
const endings = input.match(/\w+$/mg);      // ["line", "lines", "lines", "Four"]