계기 프로그래머스 우수 코드를 보던중 다트게임에서 정규표현식으로 표현한 코드가 있어서 리뷰중 궁금증 발생
import re
def solution(dartResult):
bonus = {'S' : 1, 'D' : 2, 'T' : 3}
option = {'' : 1, '*' : 2, '#' : -1}
p = re.compile('(\d+)([SDT])([*#]?)')
dart = p.findall(dartResult)
for i in range(len(dart)):
if dart[i][2] == '*' and i > 0:
dart[i-1] *= 2
dart[i] = int(dart[i][0]) ** bonus[dart[i][1]] * option[dart[i][2]]
answer = sum(dart)
return answer
정규표현식이란?
- 텍스트 데이터중 내가 설정한 조건에 해당하는 문자열 패턴을 찾아내기 위해 사용
-> 정규식을 이용하면 많은 양의 텍스트 파일중에서 원하는 데이터를 손쉽게 뽑아낼수 있고, 데이터가 형식에 맞는지 체크 가능
사용법
- re module import
- 정규식 표현 규칙에 따라서 compile을 하고 findall로 찾기 findall -> https://velog.io/@beanlove97/%ED%8C%8C%EC%9D%B4%EC%8D%AC-findall-%EB%A9%94%EC%84%9C%EB%93%9C
정리
- example들을 보면서 정규식 표현 규칙들을 적용하는게 맞겠다. 굉장히 다양한 규칙을 설정하는 문법들이 있음.
참고문헌