정규표현식
정규표현식 연습
문자열을 다뤄야하는 경우 정규표현식은 필수이다. 모두 외우진 못해도 필수적인 기능들을 찾아서 활용할 수 있을 정도까지는 연습하자.
\
특수문자 앞일 경우 단순문자로 해석되며 단순문자 앞일 경우 약속되어진 다른 의미로 해석된다.
\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