로그 파싱 예제를 통해 정규식을 배우는 개념 문제였다. 이래저래 시키는 게 많은 개념 문제 치고는 까다로운 부분 없이 간단하게 끝난 것 같다.
defmodule LogParser do
def valid_line?(line) do
Regex.match?(~r/^\[(DEBUG|INFO|WARNING|ERROR)\]/, line)
end
def split_line(line) do
String.split(line, ~r/\<[~*=-]*\>/)
end
def remove_artifacts(line) do
String.replace(line, ~r/end-of-line[0-9]+/i, "")
end
def tag_with_user_name(line) do
name = Regex.run(~r/User[\s]+([^\s]+)/, line)
if is_nil(name), do: line, else: "[USER] #{Enum.at(name, 1)} #{line}"
end
end
'호두나무 공방 > Exercism in Elixir' 카테고리의 다른 글
Saddle Points - Exercism in Elixir (1) | 2022.09.20 |
---|---|
Word Count - Exercism in Elixir (1) | 2022.09.19 |
Matrix - Exercism in Elixir (0) | 2022.09.15 |
Nth Prime - Exercism in Elixir (0) | 2022.09.14 |
Spiral Matrix - Exercism in Elixir (0) | 2022.09.13 |