[Regex] 정규식 메모

IT Aug 18, 2021

정규식/정규 표현식이란 문자열에 특정 규칙과 일치하는 집합을 표현하는데 사용하는 형식 언어이다. 영어로 Regular Expression으로 줄여서 regex, regexp 등으로 쓰인다.
주로 문자열을에 사용되는 형식언어이다. 최근 대부분의 언어에서 문자열의 검색과 치환을 위해 지원하고 있다. 그래서 최근 사용되는 프로그래밍 언어에서 거의 동일한 문법으로 이용가능하다.

정규 표현식은 문자열이 가지고 있는 신택스(외형적 문자열 모양)의 패턴을 가져오기 위해 사용된다.

정규
표현식
설명
^ 문자열 시작
$ 문자열 종료
. 임의의 한 문자(단, \는 넣을 수 없음)
+ 앞에 문자가 하나 이상
* 앞에 문자가 없을 수도 무한정 많을 수도 있음
? 앞에 문자가 없거나 하나 있음
[] 문자의 집합이나 범위를 나타냄. 두 문자 사이에 -기호로 범위를 나타낼 수 있음. 내용 안에 ^가 앞에 있으면 not를 의미. [0-9] => 0부터 9까지 숫자, [^1a] => 1, a 제외
{} 횟수 또는 범위를 나타냄
() 괄호 안에 문자를 하나의 문자로 인식
| 패턴 안에서 'or' 연산 수행
\ 정규 표현식에서 역슬러시는 특수문자를 취급시 앞에 역슬러시로 취급. 이외에 역슬러시를 나타냄
\b 단어의 경계
\B 단어가 아닌 것에 대한 경계
\A 입력의 시작 부분
\G 이전 매치의 끝
\Z 입력의 끝이지만 종결자가 있는 경우
\z 입력의 끝
\s 공백 문자
\S 공백 문자가 아닌 나머지 문자
\w 알파벳이나 숫자
\W 알파벳이나 숫자를 제외한 문자
\d 숫자 [0-9]와 동일
\D 숫자를 제외한 모든 문자
(?i) 앞 부분에 (?i)라는 옵션을 넣어 주게 되면 대소문자는 구분하지 않음
\1 그룹이 첫번째
(?:) 해당 내용을 찾았지만 그룹에서 제외. ex) (?:\W+\1\b) 한개이상의 문자 아닌 것들과 첫번째 그룹이며 단어의 경계까지는 제외.

정규식 테스트 사이트를 통해 표현식을 검증해 볼 수 있다.

RegExr: Learn, Build, & Test RegEx
RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).
주로 이용하는 사이트 - RegExr
Regexper
Regular expression visualizer using railroad diagrams
정규식 분석 플로우를 한눈에 볼 수 있는 곳 - Regexper
regex101: build, test, and debug regex
Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java. Features a regex quiz & library.
regex101

Tags