728x90
반응형
정규표현식이란?
정규표현식의 사전적인 의미로는 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어입니다. 주로 Programming Language나 Text Editor 등 에서 문자열의 검색과 치환을 위한 용도로 쓰이고 있습니다. 입력한 문자열에서 특정한 조건을 표현할 경우 일반적인 조건문으로는 다소 복잡할 수도 있지만, 정규표현식을 이용하면 매우 간단하게 표현 할 수 있습니다. 하지만 코드가 간단한 만큼 가독성이 떨어져서 표현식을 숙지하지 않으면 이해하기 힘들다는 문제점이 있습니다.
# Regular Expression(regex)
. : 문자 1개
^ : 문자열의 시작
$ : 문자열의 끝
[] : 문자 집합
| : or
() : 괄호 안의 정규식 그룹
* : 0 or more
+ : 1 or more
? : 0 or 1
{n} : n번 반복
{n, m} : n번부터 m번까지
{n, } : n버부터 무한대
# r 문자열 표기법(re 모듈의 확장 문법)
\w : [a-zA-Z0-9_] -> a~z, A~Z, 0~9, _를 포함하는 모든 문자
\W : [^a-zA-Z0-9_] -> 위 문자를 제외한 나머지
\d : [0-9] -> 숫자 0~9
\D : [^0-9] -> 숫자가 아닌 문자
\s : [\t\n\r\f\v] -> 공백 문자
\S : [^\t\n\r\f\v] -> 공백 제외한 모든 문자
\b : 단어의 시작과 끝의 빈 공백
\B : 단어의 시작과 끝이 아닌 빈 공백
\\ : \ -> 역슬래시 문자로 인식
\[숫자] : 지정된 숫자만큼 일치하는 문자열
\A : 문자열의 시작
\Z : 문자열의 끝
import re
str01 = '나의 이메일은 kh123@kh.com123 입니다.'
match = re.search(r'[\w]*@[a-zA-Z.]*', str01)
print(match.group())
match2 = re.search(r'[\w]*@[\w.-]+', str01)
print(match2.group())
# 결과값
kh123@kh.com
kh123@kh.com123
728x90
반응형
'Language > Python' 카테고리의 다른 글
[python]control_if (0) | 2020.10.07 |
---|---|
[python]split_join (0) | 2020.10.07 |
[python]operation (0) | 2020.10.07 |
[Python] 기초 (0) | 2020.10.06 |
[Python]맥 설치 (0) | 2020.10.06 |