본문 바로가기

Flask-Study

Werkzeug의 PathConverter

정규표현식

정규표현식이란 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식이다.

정규표현식 문자들은 아래와 같다.

  • ^ : 문자열의 시작과 매치
  • $ : 문자열의 마지막과 매치
  • ^ $ : 사이에 있는 글자가 정확히 들어맞아야 함
  • . : 아무 글자(띄어쓰기 포함, 줄바꿈은 제외)
  • [] : 대괄호 안에 있는 문자들 중 한글자
  • [a-z] : a부터 z까지 임의의 글자
  • | : 또는
  • * : 최소 0번 이상 반복 ( {0, } 과 동일)
  • + : 최소 1번 이상 반복
  • ? : 0번 또는 1번 ( {0,1} 과 동일)
  • {n} : n번 반복

 

Converter

Converter를 사용하면 포멧의 변수를 사용하지 않고 편하게 사용할 수 있다.

PathConverter 내용을 보면 경로에 사용되는 슬래쉬(/)를 포함하는 문자열을 리턴한다고 나와있다 자세한 부분은 아래와 같다.

  class PathConverter(BaseConverter):
      """Like the default :class:`UnicodeConverter`, but it also matches
         slashes.  This is useful for wikis and similar applications::

      Rule('/<path:wikipage>')
      Rule('/<path:wikipage>/edit')

  :param map: the :class:`Map`.
  """
  regex = '[^/].*?'
  weight = 200

regex 부분을 잘 살펴보면 위에서 알아본 정규표현식이 되어 있는 것을 볼 수 있다.

PathConverter에 regax부분이 정의되어 있기 때문에 path 하나로 정규표현식을 사용하게 되는 것이다.