less than 1 minute read

정규표현식 연습

문자열을 다뤄야하는 경우 정규표현식은 필수이다. 모두 외우진 못해도 필수적인 기능들을 찾아서 활용할 수 있을 정도까지는 연습하자.

\

특수문자 앞일 경우 단순문자로 해석되며 단순문자 앞일 경우 약속되어진 다른 의미로 해석된다.

\b - 단어의 경계를 뜻함.

/\bm/.exec("moon") // m
/\bo/.exec("moon") // null
/n\b/.exec("moon") // n

\d - 숫자 문자와 매칭.

\D - 숫자가 아닌 문자와 매칭.

\s - 하나의 공백 문자와 매칭.

\S - 공백이 아닌 문자와 매칭.

"moon ho young".match(/\S+/g); // ['moon', 'ho', 'young']

\B - 단어의 경계가 아닌 곳을 뜻함.

^

입력의 시작 문자열에 매칭.

$

입력의 끝 문자열에 매칭.

*

0번 이상 반복되는 문자열에 매칭. 정규표현식 {0,}와 동일하다.

+

1번 이상 반복되는 문자열에 매칭. 정규표현식 {1,}와 동일하다.

?

0~1번 반복되는 문자열에 매칭. 정규표현식 {0,1}와 동일하다.

*, +, ?, {}은 가능한 많은 만족하는 문자열을 매칭시킨다. *, +, ?, {} 패턴 뒤에 ? 패턴을 추가할 경우, 가능한 가장 적은 문자열을 매칭시킨다.

.

개행 문자를 제외한 모든 단일 문자와 매칭.

()

() 패턴으로 매칭된 값이 기억되는 포획 괄호(capturing parentheses) 역할을 한다.

"abcabc".match("/abc+/"); // abc
"abcabc".match("/(abc)+/"); // abcabc

"insert space in capitalLetter".replace(/([A-Z])/, " $1");
// insert space in capital Letter