정규 표현식이란 특정한 규칙을 가진 문자열의 집합을 표현하는 방법
. / [] {} 와 같이 특별한 역할을 한다 ➜ 메타 문자
a 8 킥 와 같이 문자 그대로의 역할을 한다 ➜ 리터럴 문자
스티븐 클레이니가 1956년 만듬
옛날 유닉스 프로그램에서도 사용되었음
오늘날 대부분의 프로그래밍 언어에서 지원
정규 표현식을 잘 사용하여 문자열 집합을 뽑아내는 사람들을 참 섹시하다고 생각했다.
^
: 문자열 시작 부분만 매칭$
: 문자열 끝 부분만 매칭\메타문자
: 메타 문자를 리터럴 문자처럼 취급.
: 모든 문자 1개를 의미..
: 모든 문자 2개를 의미...
: 모든 문자 3개를 의미
- 3개씩 묶여있다. (빈칸도 문자 취급)
[ ]
: 괄호안의 문자가 매칭괄호 1개당 문자 1개,
h-w
는 범위를 나타냄
[^ ]
: 괄호안의 문자가 아닌경우 매칭( | | )
: 그룹을 나눠서 해당되는 문자 매칭문자*
: 앞에 있는 문자 개수가 0개 ~ 여러개 매칭a 2개, a 1개, a 0개 매칭
문자+
: 앞에 있는 문자 개수가 1개 ~ 여러개 매칭a 2개, a 1개 매칭
문자?
: 앞에 있는 문자 개수가 0개 ~ 1개 매칭a 1개, a 1개, a 0개 매칭
문자{숫자}
: 숫자 개수만큼 문자 매칭
[els][els][els]
만 매칭
문자{작은 숫자, 큰 숫자}
: 숫자 범위내의 개수만큼 모든 문자 매칭
[els]
,[els][els]
,[els][els][els]
모두 매칭
문자{숫자,}
: 숫자 이상의 개수만큼 모든 문자 매칭탐욕적 수량자 : 앞서 살펴본 모든 수량자
*
, +
, ?
, { }
<게을러요>
를 찾았지만, 탐욕적 수량자는 욕심이 많아서 탐욕스럽게 끝까지 검색을 수행한다.- 결국
<탐욕스러워요>
의 닫히는 괄호를 찾는다.- 그리고 가장 긴 문자열이 매칭된다.
?
를 붙인다.*?
, +?
, ??
, { }
<게을러요>
를 찾은 게으른 수량자는 게을러서 탐색을 중단하고 바로 퇴근한다.- 따라서
<게을러요>
가 매칭된다.- 이를 반복하여
<탐욕스러워요>
도 따로 매칭된다.
\b
: 단어의 영역을 만족할 경우 매칭
cat
이 단어의 앞 부분인 경우 매칭
cat
이 단어의 뒷 부분인 경우 매칭
cat
이 단어의 앞뒤 모두 해당할 경우 매칭- 즉, 단어
cat
만 매칭
(?=문자)
: 문자를 검색에 사용하지만 결과물로 매칭되진 않음
X
는 검색에 사용하나, 결과물로서 매칭되진 않는다.
(?!문자)
: 해당 문자가 들어간 단어는 매칭되지 않는다.출처
생활코딩 정규 표현식 강의
https://opentutorials.org/module/622/5143
정규 표현식 - 위키백과
https://ko.wikipedia.org/wiki/%EC%A0%95%EA%B7%9C_%ED%91%9C%ED%98%84%EC%8B%9D
정규 표현식 예제
https://zvon.org/comp/r/tut-Regexp.html#Pages~Contents
정규 표현식 실습 사이트
https://regexr.com/
벨로그는 스크랩이 없나요?