본 내용은 드림코딩 by 엘리님의 정규표현식, 더이상 미루지 말자 강의를 토대로 작성하였습니다.
1. 정규표현식이란?
- regex
- Regular Expression
- 텍스트에서 원하는 특정 패턴을 찾을 때 사용
- 찾은 패턴을 다른 문자열로 변환
- 사용자가 입력한 데이터가 유효한지 검사
- 1950년 미국의 한 수학자 Stephen에 의해 개발
- 유닉스 계열에서 텍스트와 같은 것들을 처리하고 프로세싱하는 데에 사용
- 현재는 다양한 프로그래밍 언어에서 내부적으로 지원
- 코드에디터에서도 사용 가능
- /(slashes)안에 정규표현식을 작성
2. 그룹, 레인지
일반적인 텍스트 검사
// 'Hi'와 매칭
/Hi/gm
// or 연산자
// 'Hi' 또는 'Hello'와 매칭
/Hi|Hello/gm
그룹, 레인지
| 또는
( ) 그룹
[ ] 문자셋, 괄호안의 어떤 문자든
[^] 부정 문자셋, 괄호안의 어떤 문자가 아닐 때
(?:) 찾지만 기억하지는 않음
g 글로벌
m 멀티라인
예시
* 'Hi'와 'Hello'를 한 그룹으로 지정
/(Hi|Hello)/gm
* 그룹1: 'Hi' 또는 'Hello'
* 그룹2: 'And'
/(Hi|Hello)|(And)/gm
* gr로 시작하고 y로 끝나며, 중간에 e 또는 a가 들어가는 문자열(그룹으로 찾음)
/gr(e|a)y/gm
* 위와 동일하게 찾지만 그루핑을 하지 않음
/gr(?:e|a)y/gm
* 위와 동일하게 찾음, 그루핑을 하지 않음
/gr[ea]y/gm
* gr로 시작하고 a에서 f에 속하는 문자를 가지며 y로 끝나는 문자열을 찾음
/gr[a-f]y/gm
* a에서 z, A에서 Z, 0에서 9 까지를 가지는 문자열을 찾음
/[a-zA-Z0-9]/gm
* a에서z, A에서 Z, 0에서 9까지를 제외한 문자열을 찾음
/[^a-zA-Z0-9]/gm
Reference
'programming study > Etc' 카테고리의 다른 글
정규표현식(4) (0) | 2021.11.20 |
---|---|
정규표현식(3) (0) | 2021.11.19 |
정규표현식(2) (0) | 2021.11.18 |
Agile Software Development (0) | 2021.09.29 |
프레임워크 vs 라이브러리 vs API (0) | 2021.07.20 |