가끔 정규표현식을 사용하거나 코드를 읽을 일이 있는데, 그때마다 제대로 알고 사용하는게 아니기도 하고 다른사람이 쓴 코드는 뭔지 도통 모르겠어서 이참에 공부해보고자 정리해보려고 한다.
regular expression의 약자
slashes를 이용해서 정규표현식이라는 것을 나타내고, 그 안에 pattern을 작성해주고 어떤 옵션을 이용해서 검색할건지 flag를 활용할 수 있다. 정규표현식을 사용하면 특정 패턴의 문자열을 찾을 수 있다.
이 때 중요한 것은 "어떻게 우리가 원하는 패턴을 작성해 나가느냐" 이다. 이를 위해 4가지 그룹으로 나눠 문법을 정리할 수 있다.
| Character | 뜻 |
|---|---|
| | | 또는 |
| ( ) | 그룹 |
| [ ] | 문자셋, 괄호안의 어떤 문자든 |
| [ ^ ] | 부정 문자셋, 괄호안의 어떤 문자가 아닐때 |
| ( ? : ) | 찾지만 기억하지는 않음(그룹 표시 안함) |
| Character | 뜻 |
|---|---|
| ? | 없거나 있거나(ZERO or ONE) |
| * | 없거나 있거나 많거나(ZERO or MORE) |
| + | 하나 이상(ONE or MORE) |
| { n } | n번 반복 |
| { min, } | 최소 min 이상 |
| { min, max } | 최소, 그리고 최대 |
| Character | 뜻 |
|---|---|
| \b | 단어 경계 |
| \B | 단어 경계가 아닌 |
| ^ | 문장의 시작 |
| $ | 문장의 끝 |
| Character | 뜻 |
|---|---|
| / | 특수 문자가 아닌 문자 |
| . | 어떤 글자(줄바꿈 문자 제외) |
| \d | digit 숫자 |
| \D | digit 숫자 아님 |
| \w | word 문자 |
| \W | word 문자 아님 |
| \s | space 공백 |
| \S | space 공백 아님 |
참고 영상 - 정규표현식, 더이상 미루지 말자 (드림코딩)
추가 자료 - MDN 정규표현식, JavaScript 정규 표현식 문법 총정리 + 응용 예제