정규표현식 입문하기

Goody·2021년 3월 4일
0

자바스크립트

목록 보기
11/13

정규표현식이란

정규표현식(regex)는 regular expression 의 약자로,

텍스트에서 우리가 원하는 특정한 패턴을 찾고, 다른 문자열로 변경할 때 쓰인다.

ex: 텍스트 사이에서 전화번호, 혹은 웹사이트, 이메일 형태의 패턴 찾기

사용자가 입력한 데이터가 이메일이나 패스워드같은 특정한 패턴에 부합하는지 유효성 검사를 할 때도 사용.


표현방식

// 사이에 우리가 찾고자 하는 패턴을 작성해준다.


문법 정리

Groups and ranges

Chracter
``
()그룹
[]문자셋, 괄호안의 어떤 문자든
[^]부정 문자셋, 괄호안의 어떤 문가 아닐때
(?:)찾지만 기억하지는 않음

Quantifiers

Chracter
?없거나 있거나 (zero or one)
*없거나 있거나 많거나 (zero or more)
+하나 또는 많이 (one or more)
{n}n번 반복
{min,}최소
{min,max}최소, 그리고 최대

Boundary-type

Chracter
\b단어 경계
\B단어 경계가 아님
^문장의 시작
$문장의 끝

Character classes

Chracter
\특수 문자가 아닌 문자
.어떤 글자 (줄바꿈 문자 제외)
\ddigit 숫자
\Ddigit 숫자 아님
\wword 문자
\Wword 문자 아님
\sspace 공백
\Sspace 공백 아님

예시

  • 전화번호 선택하기
/\d{2,3}[- .]\d{3,4}[- .]\d{4}/gm

010 8980 0893
010 898 0893
010.898.0893
010-405-3412
02-878-8888
  • 이메일 선택하기
/[a-zA-Z0-9._+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9.]+/gm

junzero.741@gmail.com
hello@daum.net
hello@daum.co.kr
  • 주소에서 아이디만 선택하기
/(?:https?:\/\/)?(?:www\.)?youtu.be\/([a-zA-Z0-9-]{11})/gm

https://www.youtu.be/-ZClicWm0zM
https://youtu.be/-ZClicWm0zM
youtu.be/-ZClicWm0zM

JS 에서 활용하기

const regex = /(?:https?:\/\/)?(?:www\.)?youtu.be\/([a-zA-Z0-9-]{11})/;
const url = "https://youtu.be/-ZClicWm0zM";

const result = url.match(regex);

console.log(result);

/* (2) ["https://youtu.be/-ZClicWm0zM", 
	"-ZClicWm0zM", 
    	index: 0, 
    	input: "https://youtu.be/-ZClicWm0zM", 
    	groups: undefined]
        */

match 메서드는 문자열이 정규식과 매치되는 부분을 검색한다.


// .. 생략
const result = url.match(regex);
const id = result[1]

console.log(id);

// "-ZClicWm0zM"

유튜브 주소에서 id 만 추출했다.


REFERENCE

dream-ellie's github : https://github.com/dream-ellie/regex

dream-ellie's youtube : https://www.youtube.com/watch?v=t3M6toIflyQ&t=181s

0개의 댓글