Regex and Parsing - Re.split()

정규표현식 문제 또 하나 풀어보는데 생각보다 너무 단순한 문제를 골라버렸다. 그래도 정규표현식과 print함수의 활용을 조금 더 주의 깊게 볼 수 있었다.

문제 풀이

문제 해석

s라는 변수로 문자열을 받을 것인데, 이 문자열은 숫자와 comma(,), dot(.) 기호로만 이루어져 있다. 기호는 무조건 숫자 사이에만 위치한다.

Task

  • regex_pattern을 완성시켜서 ,.를 기준으로 나누게끔 할 것

문제 풀이

이미 주어진 코드 해석

1
2
3
4
regex_pattern = r""	# Do not delete 'r'.

import re
print("\n".join(re.split(regex_pattern, input())))

프린트 실행문의 인수로 들어가는 것은 내가 작성하는 정규표현식 패턴을 기준으로 나누어진 문자열 요소들을 하나하나 개행하며 출력하도록 "\n"join()을 통해 붙여진 문자열이다. 즉 ,. 대신 \n이 왔다고 생각하면 된다. 말그대로 패턴만 완성하면 되는 문제.

코드 작성하기

  • split()의 인수로 ,. 중 아무거나 오면 되니까, 그 안의 아무거나를 가리키는 대괄호 [] 안에 쉼표와 마침표를 넣어주되, 그냥 넣어주면 모든 문자+기호를 나타내는 .과의 혼동이 있을 수 있으니 backslash(\)를 함께 넣어준다.
  • 완성된 패턴은 다음과 같다.
    1
    regex_pattern = r"[\,\.]"

느낀 점

정규표현식 패턴은 쓸때마다 흥미롭고 성취감이 있어서 좋다.