JAVA SCRIPT/Study

드림코딩 :: 정규표현식, 더이상 미루지 말자 정리하기 (YouTube)

ㅈㅣㄴ 2023. 12. 14. 12:38
드림코딩 :: 정규표현식, 더이상 미루지 말자 정리하기 (YouTube)

 

※ 이 글은 유튜브 강의 영상을 보고 정리한 글입니다. MDN 을 보고 정리한 기존 포스팅을 참고 하였습니다.

 

정규표현식 (Regex)

텍스트에서 우리가 원하는 특정한 패턴을 찾을 때 유용하게 사용할 수 있다.

 

슬래쉬를 이용하여 나타낸다. (/)

슬래쉬 안에 찾고자 하는 패턴을 작성하고 플래그를 활용하면 된다.

 

https://regexr.com/5mhou

 

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)
(?:) 찾지만 기억하지는 않음

 

[^a-zA-Z0-9] : a-zA-Z0-9 안에 속하는 문자가 아닌 것을 모두 찾으세요.

 

 Flags 패널 확인하기!

 

https://never4ott.tistory.com/13

 

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]; //매칭된 그룹 데이터

 

 

https://regexone.com/

 

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