정규표현식 (Regex)
Regex (Regular expression) 란?
- 특정 패턴을 찾아서 보여주거나 찾아진 패턴을 다른 문자열로 변환할 수 있는 정규표현식
• 사용법
/ 찾고자하는 패턴 / 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 와 반대, 이어져있는 단어에 중첩된 단어가 있을때 앞•뒤 단어를 제외한 것만 매칭한다
^ : 문장의 시작
$ : 문장의 끝
⁕ 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