정규 표현식 문법에 대한 내용을 정리 합니다.
1) 정규 표현식 문법
특수문자 | 설명 |
. | 한 개의 임의의 문자를 나타냅니다(줄바꿈 문자인 \n는 제외). |
? | 앞의 문자가 존재할 수도 있고, 존재하지 않을 수도 있습니다(문자가 0개 또는 1개). |
* | 앞의 문자가 무한개로 존재할 수도 있고, 존재하지 않을 수도 있습니다(문자가 0개 이상). |
+ | 앞의 문자가 최소 한 개 이상 존재합니다(문자가 1개 이상). |
^ | 뒤의 문자로 문자열이 시작됩니다. |
$ | 앞의 문자로 문자열이 끝납니다. |
{숫자} | 숫자만큼 반복합니다. |
{숫자1, 숫자2} | 숫자1 이상 숫자2 이하만큼 반복합니다. ?, *, +를 이것으로 대체할 수 있습니다. |
{숫자,} | 숫자 이상만큼 반복합니다. |
[ ] | 대괄호 안의 문자들 중 한 개의 문자와 매치합니다. [amk]라고 한다면 a 또는 m 또는 k 중 하나라도 존재하면 매치를 의미합니다. [a-z]와 같이 범위를 지정할 수도 있습니다. [a-zA-Z]는 알파벳 전체를 의미하는 범위이며, 문자열에 알파벳이 존재하면 매치를 의미합니다. |
[^문자] | 해당 문자를 제외한 문자를 매치합니다. |
l | AlB와 같이 쓰이며 A 또는 B의 의미를 가집니다. |
2) 역슬래쉬(\)를 이용한 정규 표현식
문자규칙 | 설명 |
\\ | 역 슬래쉬 문자 자체를 의미합니다 |
\d | 모든 숫자를 의미합니다. [0-9]와 의미가 동일합니다. |
\D | 숫자를 제외한 모든 문자를 의미합니다. [^0-9]와 의미가 동일합니다. |
\s | 공백을 의미합니다. [ \t\n\r\f\v]와 의미가 동일합니다. |
\S | 공백을 제외한 문자를 의미합니다. [^ \t\n\r\f\v]와 의미가 동일합니다. |
\w | 문자 또는 숫자를 의미합니다. [a-zA-Z0-9]와 의미가 동일합니다. |
\W | 문자 또는 숫자가 아닌 문자를 의미합니다. [^a-zA-Z0-9]와 의미가 동일합니다. |
3) 개발 언어별 구현
- Python
python에서는 re를 import하여 정규 표현식을 구현합니다.
- 함수
모듈 함수 | 설명 |
re.compile() | 정규표현식을 컴파일하는 함수입니다. 다시 말해, 파이썬에게 전해주는 역할을 합니다. 찾고자 하는 패턴이 빈번한 경우에는 미리 컴파일해놓고 사용하면 속도와 편의성면에서 유리합니다 |
re.search() | 문자열 전체에 대해서 정규표현식과 매치되는지를 검색합니다 |
re.match() | 문자열의 처음이 정규표현식과 매치되는지를 검색합니다. |
re.split() | 정규 표현식을 기준으로 문자열을 분리하여 리스트로 리턴합니다. |
re.findall() | 문자열에서 정규 표현식과 매치되는 모든 경우의 문자열을 찾아서 리스트로 리턴합니다. 만약, 매치되는 문자열이 없다면 빈 리스트가 리턴됩니다. |
re.finditer() | 문자열에서 정규 표현식과 매치되는 모든 경우의 문자열에 대한 이터레이터 객체를 리턴합니다. |
re.sub() | 문자열에서 정규 표현식과 일치하는 부분에 대해서 다른 문자열로 대체합니다. |
예제 소스는 다음 git에서 확인할 수 있습니다.
GIT URL: https://github.com/ynebula/Python/blob/master/Regular_Expression.ipynb
감사합니다.
댓글
댓글 쓰기