정규표현식에 대해 알아보자
2021, Mar 04
해당 내용은 드림코딩 엘리님의 유튜브를 참고 했습니다.
정규표현식이란
/regex?/i 정규표현식, RegEx는 Regular Expression의 약자이다
텍스트에서 우리가 원하는 특정한 패턴을 찾을 때 요긴하게 쓸 수 있다. 그리고 그 패턴을 다른 문자열로 바꿔줄 수 도 있다.
또는 사용자가 입력한 데이터가 이메일이나 패스워드와 같은 특정한 패턴과 일치하는지 유효성 검사에도 사용할 수 있다.
이제는 다양한 언어에서도 지원이 가능하고 테스트나 코드 에디터에서도 정규표현식을 이용해서 검사하는 것이 가능해진다.
정규표현식은 /regex?/i 이렇게 slashes를 이용해서 ‘나는 정규표현식이야’ 라고 나타내주면 되고
이 //안에 찾고자하는 pattern을 찾고 i에 어떤옵션을 이용해서 검색할건지 flag를 활용할 수 있다.
그래서 공부할 것은, 어떻게 우리가 원하는 패턴을 작성하느냐가 중요하다.
4가지를 나눠서 문법을 정리해보자.
정규표현식 문법정리
Groups and ranges (그룹, 레인지)
| Character | 뜻 |
|---|---|
| | | 또는 |
| () | 그룹 |
| [] | 문자셋, 괄호안의 어떤 문자든 |
| [^] | 부정 문자셋, 괄호안의 어떤 문자가 아닐 때 |
| (?:) | 찾지만 기억하지는 않음 |
Quantifiers (수량)
| Character | 뜻 |
|---|---|
| ? | 없거나 있거나(zero or one) |
| * | 없거나 있거나 많거나(zero or more) |
| + | 하나 또는 많이 (one or more) |
| {n} | n번 반복 |
| {min,max} | 최소, 그리고 최대 |
Boundary-type (단어 경계)
| Character | 뜻 |
|---|---|
| \b | 단어경계 |
| \B | 단어 경계가 아님 |
| ^ | 문장의 시작 |
| $ | 문장의 끝 |
Character classes (문자)
| Character | 뜻 |
|---|---|
| \ | 특수 문자가 아닌 문자 |
| . | 어떤 글자 (줄바꿈 문자 제외) |
| \d | digit 숫자 |
| \D | digit 숫자 아님 |
| \w | word 문자 |
| \W | word 문자 아님 |
| \s | space 공백 |
| \S | space 공백 아님 |