문제

Triple-quoted strings are not only useful for multiline strings but also for creating regex patterns as you don't need to escape a backslash with a backslash.

The following pattern matches a date in the format 13.06.1992 (two digits, a dot, two digits, a dot, four digits):

fun getPattern() = """\d{2}\.\d{2}\.\d{4}"""

Using the month variable, rewrite this pattern in such a way that it matches the date in the format 13 JUN 1992 (two digits, one whitespace, a month abbreviation, one whitespace, four digits).

val month = "(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)"

fun getPattern(): String = TODO()

val month = "(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)"

fun getPattern(): String = """\d{2} $month \d{4}"""

풀이

13.06.1992로 값이 들어온다면 포맷을 13 JUN 1992로 표현해야하는 정규표현식을 이용하는 문제이다.

문제에서 month를 문자열로 제공하였고, getPattern()함수를 구현하도록 하였다.

문제 예시를 살펴보면

"""\d{2}\.\d{2}\.\d{4}""" 처럼 입력을 하게되는 경우 값이 어떻게 나오는지 파악할 수 있다.

우리는 d{2}와 d{4} 사이에 몇월인지가 들어가야 한다.

템플릿 변수

  • 변수 이름 앞에 $를 붙이면, 문자열 템플릿이 변수의 값을 문자열에 담는다.
  • 변수를 띄어쓰기 하고싶지 않을 경우 대괄호 {}를 사용해서 구분해야 한다.

profile
개발하는 다람쥐

0개의 댓글