본문 바로가기

개발/CodeWars 문제 회고

Regex Failure - Bug Fixing #2

반응형

간단 소개

이미 어느정도 작성된 정규표현식이 테스트를 통과를 못하는데, 이것을 통과하도록 수정하는 문제이다.

최초 풀이

  • 테스트를 보았을 때, case sensitive 문제로 생각하고 대소문자 구분을 어떻게 하지? 생각하면서 스택오버플로우를 찾아보았다.
  • (?i) 키워드로 대소문자 구분 함을 알 수 있었다

Best Practice

import unittest


import re


def filter_words(phrase):
    return re.sub("bad|mean|ugly|horrible|hideous", "awesome", phrase, flags=re.IGNORECASE)


class TestFilterWords(unittest.TestCase):
    def test_filter_words(self):
        self.assertEqual(filter_words("You're Bad! timmy!"), "You're awesome! timmy!")
        self.assertEqual(filter_words("You're MEAN! timmy!"), "You're awesome! timmy!")
  • 파이썬 re.subflags 라는 옵션이 있었다.

느낀점

  • 아직 정규표현식에 대해서 많이 서툴고 배워가는 단계이다. 매일매일 조금씩 익히도록 하자
반응형

'개발 > CodeWars 문제 회고' 카테고리의 다른 글

[python ] 6kyu Unary function chainer  (0) 2021.01.24
[javascript] Generate range of integers  (0) 2021.01.04
Buying a Car  (0) 2021.01.02