728x90
반응형
Regex 에서 데이터를 Group화 하여 dict 형태로 출력하려면 기본적으로 Python 에 Regex 이름규칙을 지정하는 방법부터 알아보자.
1. Regex 를 일반적인 매칭
import re
value = "이름<이메일>"
compile_regex = re.compile(".*?<.*?>$")
ret_value = compile_regex.match(value)
if ret_value:
print("Match")
else:
print("Not Match")
출력:
Match
2. regex 그룹화 출력하기
import re
value = "이름<이메일>"
compile_regex = re.compile("(.*?)<(.*?)>$")
ret_value = compile_regex.search(value)
if ret_value:
print("Match")
print(ret_value.groupdict())
else:
print("Not Match")
출력
Match
{}
1번 예제와 2번예제의 차이는 regex 안에 .*? => (.*?) 를 사용하여 그룹화 한 것이다.
3. regex 그룹화에 이름 지정하기
import re
value = "이름<이메일>"
compile_regex = re.compile("(?P<name>.*?)<(?P<email>.*?)>$")
ret_value = compile_regex.search(value)
if ret_value:
print("Match")
print(ret_value.groupdict())
else:
print("Not Match")
출력 :
Match
{'name': '이름', 'email': '이메일'}
2 번예제와 3번 예제의 차이는 보시는것과 같이 (.*?) => (?P<name>.*?) 와 같이 그룹화한 () 의 묶음안에 (?P<그룹명> Regex지정) 방식을 사용하여 각 그룹에 이름을 지정할 수 있다.
툴을 사용하지 않고 Regex만 테스트할때는 아래 사이트에서 Python을 선택하고 테스트 해보면된다.
728x90
반응형
'+ Development > Python' 카테고리의 다른 글
[Python] HTTP - 일반적인 Response Header 파싱 코드(Lv.2) (0) | 2019.08.21 |
---|---|
[Python] HTTP - 일반적인 Request Header 파싱 코드(Lv.1) (0) | 2019.08.15 |
[Python] 홀수, 짝수 나누기 (0) | 2019.07.13 |
[Python] 연산자 정리 (0) | 2018.09.23 |
[Python] 자료형 확인 (0) | 2018.09.23 |
댓글