드림코딩 :: 정규표현식, 더이상 미루지 말자 정리하기 (YouTube)
드림코딩 :: 정규표현식, 더이상 미루지 말자 정리하기 (YouTube)
※ 이 글은 유튜브 강의 영상을 보고 정리한 글입니다. MDN 을 보고 정리한 기존 포스팅을 참고 하였습니다.
정규표현식 (Regex)
텍스트에서 우리가 원하는 특정한 패턴을 찾을 때 유용하게 사용할 수 있다.
슬래쉬를 이용하여 나타낸다. (/)
슬래쉬 안에 찾고자 하는 패턴을 작성하고 플래그를 활용하면 된다.
RegExr: Learn, Build, & Test RegEx
RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).
regexr.com
https://github.com/dream-ellie/regex
GitHub - dream-ellie/regex
Contribute to dream-ellie/regex development by creating an account on GitHub.
github.com
Groups and ranges
Character | 뜻 |
| | 또는 |
() | 그룹 |
[] | 문자셋, 괄호 안의 어떤 문자든 |
[^] | 부정 문자셋, 괄호 안의 어떤 문자가 아닐 때 (not) |
(?:) | 찾지만 기억하지는 않음 |

Flags 패널 확인하기!

Quantifiers (수량)
Character | 뜻 |
? (없거나 1개거나) | 없거나 있거나 (zero or one) |
* (전부) | 없거나 있거나 많거나 (zero or more) |
+ (한 개 이상) | 하나 또는 많이 (one or more) |
{n} (정확하게 수량을 지정하고 싶을 때) | n번 반복 |
{min,} ( {2,} : 2 이상 ) | 최소 |
{min,max} ( {2,5} : 2, 3, 4, 5 ) | 최소, 그리고 최대 |
Boundary-type
Character | 뜻 |
\b ( \bYa : 단어 앞에서 쓰이는 Ya만 찾음 : Yaya ) | 단어 경계 |
\B (\BYa : 단어 뒤에서 쓰이는 Ya만 찾음 : yaYa ) | 단어 경계가 아님 |
^ (문장 전체 맨 앞에 있는 Ya 만 찾음) | 문장의 시작 |
$ (문장 맨 끝에 있는 Ya만 찾음) | 문장의 끝 |
* 문장 시작과 끝을 검색할 m 플래그를 사용하지 않으면 전체 문장에서 찾아내기 때문에 m 을 체크해주기!
Character classes
Character | 뜻 |
\ | 특수 문자가 아닌 문자 |
. (모든 글자가 선택됨) | 어떤 글자 (줄바꿈 문자 제외) |
\d (숫자만 선택됨) | digit 숫자 |
\D (숫자를 제외하고 전부 선택됨) | digit 숫자 아님 |
\w (문자만 선택됨) | word 문자 |
\W (문자를 제외하고 전부 선택됨) | word 문자 아님 |
\s (공백만 선택됨) | space 공백 |
\S (공백을 제외하고 전부 선택됨) | space 공백 아님 |
전화번호 찾기
\d{2,3}[- .]\d{3}[- .]\d{4}
- \d{2,3} : 숫자가 두 개 또는 3개
- [- .] : - 또는 공백 또는 .
- \d{3} : 숫자가 3개
- \d{4} : 숫자가 4개
- 의 패턴을 찾아내는 정규표현식
이메일 찾기
[a-zA-Z0-9._+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9.]+
- [a-zA-Z0-9._+-]+ : a-zA-Z0-9 와 . , _ , + , - 가 반복되는 문자가 있음
- @ : @ 가 있음
- \. : 특수문자 . 이 포함됨
유튜브 주소에서 아이디만 추출하기
(?:https?:\/\/)?(?:www\.)?youtu.be\/([a-zA-Z0-9-]+)
- (?:https?:\/\/) : https 로 시작해서 // 가 있어도 되고 없어도 되는 문장이지만 기억하지 않음
- ?(?:www\.) : www. 이 있어도 되고 없어도 되는 문장이지만 기억하지 않음
- ?youtu.be\/ : youtu.be/ 가 있어도 되고 없어도 됨
- ([a-zA-Z0-9-]+) : 문자 a부터 z, A부터 Z, 숫자 0부터 9, - 가 여러 개 있음
자바스크립트에서 정규표현식 사용하기
const regex = '(?:https?:\/\/)?(?:www\.)?youtube.com\/([a-zA-Z0-9-=?]+)';
const url = 'https://www.youtube.com/v=t3M6toIflyQ';
url.match(regex);
// 결과값은 배열로 리턴됨
// 0 : 매칭된 전체 문자열 'https://www.youtube.com/v=t3M6toIflyQ'
// 1 : 매칭된 그룹 데이터 'v=t3M6toIflyQ'
const result = url.match(regex);
result[1]; //매칭된 그룹 데이터
RegexOne - Learn Regular Expressions - Lesson 1: An Introduction, and the ABCs
Regular expressions are extremely useful in extracting information from text such as code, log files, spreadsheets, or even documents. And while there is a lot of theory behind formal languages, the following lessons and examples will explore the more prac
regexone.com