0%

문자열에 정규식 활용하기

정규식 문자열 앞에 r 문자를 삽입하면 이 정규식은 Raw String 규칙에 의하여 백슬래시 2개 대신 1개만 써도 2개를 쓴 것과 동일한 의미를 갖게 된다.

1
re.sub(r'\') ## '\\'

※ 만약 백슬래시를 사용하지 않는 정규식이라면 r의 유무에 상관없이 동일한 정규식이 될 것이다.

re.sub()

re.sub(pattern, repl, string, count=0, flag=0)

: patternrepl 로 대체한 string 을 반환한다.

  • repl\ 가 존재할 경우 backslash escape 가 적용된다.

Example

  • 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거

    1
    2
    re.sub(r"[^a-z0-9-_.]", "", answer)
    # '[^a-z\d\-\_\.]'
  • 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환

    1
    2
    re.sub('\.\.+', '.', answer)
    # '((.)\\2{1,})'
  • 마침표(.)가 처음이나 끝에 위치한다면 제거

    1
    2
    re.sub("^[.]|[.]$", "", answer)
    # '^\.|\.$'