코딩하는 개굴이

정규식을 마스터하자 본문

기본기 채우기

정규식을 마스터하자

개굴이모자 2021. 2. 21. 22:44
반응형

정규식을 마스터해보자

본 내용은 elice 파이썬 정규표현식 강의를 기반으로 작성되었음을 알립니다.

re 모듈에 대하여

  • 정규식을 사용하기 위해 re 라는 모듈을 import 해야합니다.
  • re.compile() 함수는 문자열 패턴을 컴파일해 정규식 객체를 반환한다.
    • 특정 정규식을 코드 내에 여러번 사용하고자 할 때, re.compile()으로 정규식 객체를 만들어 활용한다.
      pattern = re.compile("hello")
      print("만든 정규식 객체 활용 : ", pattern.findall(text))
      print("객체 사용하지 않음 : ", re.findall("hello",text))
  • re 모듈의 대표적인 함수
    • re.match(pattern, string) : string 시작에서부터 해당 pattern이 존재하는지 검사하여 MatchObject를 반환한다.
    • re.search(pattern, string) : string 전체에 pattern이 존재하는지 검사하여 MatchObject를 반환한다.
    • re.findall(pattern, string) : string 전체에서 패턴과 매치되는 모든 경우를 찾아 list로 반환한다.
    • re.finditer(pattern, string) : string 전체에서 패턴과 일치하는 결과에 대한 iterater 객체를 반환한다. (반환하는게 iterater 인 것의 차이)
    • re.sub(pattern, replaceString, string) : string에서 pattern 과 매칭되는 부분을 replaceString으로 수정한 문자열을 반환한다.
    • re.subn(pattern, replaceStrnig, string) : re.sub()와 동일한데, 함수의 결과를 (결과 문자열, 교체 횟수) 튜플로 반환한다.

      메타 문자

  • ^ : 문자열의 시작
  • $ : 문자열의 끝
  • | : or 조건식
  • [] : 문자 클래스
  • \d : 숫자를 나타낸다
  • \D : 숫자가 아닌 모든 문자를 나타낸다
  • \w : 알파벳 대소문자, 숫자, 밑줄을 나타낸다
  • \W : \w에 해당하지 않는 문자들을 나타낸다
  • \s : 공백, 탭 문자를 나타낸다
  • \S : \s 에 매칭되지 않는 모든 문자들을 나타낸다
  • \t : 탭 문자
  • \v : 세로 탭 문자
  • \f : 용지 넘김 문자
  • \r : 캐리지 리턴 문자
  • \n : 개행 문자를 나타낸다
  • \ : escape 문자
  • . : 모든 문자를 말한다
  • (?i) : 대소문자 무시 (?i)... 혹은 ...(?i) 앞이든 뒤든 상관 없다.
  • 예시
    "a|e|i|o|u" == "[aeiou]" <=> "[^aeiou]"

수량자

    • : 0개 이상
    • : 1개 이상
  • ? : 0개 또는 1개
  • {n} : n개
  • {n,m} : n개 이상 m개 이하
  • {n,} : n개 이상

그룹

  • (base|kick){2} 은 basebase, kickkick, basekick, kickbase 와 매칭됨
  • 만들었던 그룹을 재사용 할 수 있다.
  • (to)ma\1 -> tomato 로, 만들어진 순서부터 1번째인 to를 재사용한다.
  • 비캡쳐링 그룹 : 패턴 문자들을 묶는데, 그룹 단위로 매칭되지 않게 하여 그룹으로 묶인 것들을 따로 구분한다. (?:tom|pot)ato -> (?:)를 사용
  • 예시 ) "tomato potato"에 "(pot|tom)ato" 적용시, "pot", "tom"이 출력된다. (그룹으로 캡쳐한 부분이 있으면 이외는 출력하지 않는다. -> ato 는 그룹이 아니므로 출력안됨)
반응형
Comments