카테고리 없음

정규표현식 (Regex)

JUN0126 2021. 8. 11. 13:33

Regex (Regular expression) 란?

 - 특정 패턴을 찾아서 보여주거나 찾아진 패턴을 다른 문자열로 변환할 수 있는 정규표현식

 

• 사용법

/ 찾고자하는 패턴 / Flag 

 Flag : 정규식 패턴을 사용하기 위한 옵션

Flag 옵션

Group and ranges

 | : 또는

     - EX) / RegExr | created /   

 ( ) : 그룹

    - EX) / (RegExr | created) | (Media) /  

 

 

그룹() 과 또는 을 이용한 정규식 표현 찾기

 [ ] : 문자셋, 괄호안의 어떤 문자든

    - EX) [a-zA-Z0-9] : a부터z까지, A부터Z까지, 0부터9까지 값이 있으면 매칭한다.

 [^] : 부정 문자셋, 괄호안에 어떤 문가 아닐때

    - EX) [^a-zA-Z0-9] a부터z까지, A부터Z까지, 0부터9까지 값을 제외한 후 매칭한다.

 (?:) : 찾기만 기억하지는 않음, 사용 시 매칭되는 값에 그룹이 할당되지 않는다.

 

Quantifiers (수량)

? : 없거나 있거나 (zero or one)

* : 없거나 있거나 많거나 (zero or one)

+ : 하나 또는 많이 (one or more)

{n} : n번 반복

{min, } : 최소 

{min, max} : 최소 그리고 최대

 

Boundary-type (단어 경계)

\b : 단어 경계 , 이어져있는 단어에 중첩된 단어가 있을때 앞•뒤 단어만 매칭한다

    - \b를 앞에 설정할 경우 앞에 단어만 매칭 \b를 뒤에 설정할 경우 뒤에 단어만 매칭

\B : \b 와 반대,  이어져있는 단어에 중첩된 단어가 있을때 앞•뒤 단어를 제외한 것만 매칭한다

\b 와 \B를 이용한 단어 매칭

 

 ^ : 문장의 시작

 $ : 문장의 끝

⁕ Flag 옵션에 멀티라인(m)을 설정해주지 않으면 전체 파일의 끝과 시작에 매핑되기때문에 멀티라인 설정 권유 

 

Character classes (특수문자)

\(역슬래쉬) : 특수 문자가 아닌 문자를 그대로 찾으려면 \. , \? 과 같이 사용해야한다.

\d : digit 숫자를 매핑, \D : digit숫자가 아닌것을 매핑

\w : 문자열을 매핑, \W : 문자열이 아닌것을 매핑

\s : space 공백 매핑, \S : space 공백이 아닌것을 매핑

 

 

• 정규표현식 테스트 사이트 https://regexr.com/

• 정규표현식 연습 사이트  https://regexone.com/

• 참조 : 드림코딩 by 엘리 https://www.youtube.com/watch?v=t3M6toIflyQ