본문 바로가기
+ Development/Python

[Python] regex 값을 dict 로 가져오기

by 염불법사 2019. 8. 12.
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
반응형

댓글


loading