정규표현식은 스터디원분들 덕에 몇번 접한 적이 있다.
그래서 오늘 공부하는데 아주 수월했다.ㅎㅎ
아주 길고 복잡한 함수가 한줄로 줄어드는 기적을 몇번 보기도 해서 공부한번 하면 좋겠다 싶긴 했는데 이렇게 공부하게 되었다.
사실... 암기하기는 어렵지만 정규표현식 보고 이해하는 정도만 돼도 아주 좋지 않을까 싶다!
슬래시로 감싸 사용
RegExp객체의 생성자 함수를 호출해 사용
정규식 패턴 | 설명 |
---|---|
^ | 줄(Line)의 시작에서 일치 /^abc/ |
$ | 줄(Line)의 끝에서 일치 /xyz$/ |
. | (특수기호, 띄어쓰기를 포함한) 임의의 한 문자 |
a|b | a or b 와 일치, 인덱스가 작은 것을 우선 반환 |
* | 0회 이상 연속으로 반복되는 문자와 가능한 많이 일치. {0,} 와 동일 |
*? | 0회 이상 연속으로 반복되는 문자와 가능한 적게 일치. {0} 와 동일 |
+ | 1회 이상 연속으로 반복되는 문자와 가능한 많이 일치. {1,} 와 동일 |
+? | 1회 이상 연속으로 반복되는 문자와 가능한 적게 일치. {1} 와 동일 |
{2} | 숫자 2개 연속 일치 |
{2,} | 2개 이상 연속 일치 |
{2, 5} | 2개 이상 5개 이하 연속 일치 |
() | 캡쳐(capture)할 그룹 |
[a-z] | a부터 z 사이의 문자 구간에 일치(영어 소문자) |
[A-Z] | A부터 Z 사이의 문자 구간에 일치(영어 대문자) |
[0-9] | 0부터 9 사이의 문자 구간에 일치(숫자) |
\(역슬래쉬) | escape 문자. 특수 기호 앞에 \를 붙이면 정규식 패턴이 아닌, 기호 자체로 인식 |
\d | 숫자를 검색함. /[0-9]/ 와 동일 |
\D | 숫자가 아닌 문자를 검색함. /[^0-9]/ 와 동일 |
\w | 영어대소문자, 숫자, (underscore)를 검색함. /[A-Za-z0-9]/ 와 동일 |
\W | 영어대소문자, 숫자, (underscore)가 아닌 문자를 검색함. /[^A-Za-z0-9]/ 와 동일 |
[^] | []안의 문자열 앞에 ^이 쓰이면, []안에 없는 문자를 검색함 |
/c/.exec('cat') //['c'] 리턴
/c/.test('cat') //true 리턴
'cat'.match(/c/) //['c'] 리턴
(+)g flag와 함께 많이 사용하는 것 같았다!