Meta문자

  • ^ : 문자열 시작 패턴 : ^abc : abc로 시작하는 문자열
  • $ : 문자열 끝 패턴 : abc& : abc로 끝나는 문자열
  • * : 0개 이상 : \d* : 숫자 0개 이상
  • + : 1개 이상 : \d+ : 숫자 1개 이상
  • . : 문자 1개 : . : 아무 문자 1개
  • .* : 문자 1개 이상 : .* : 아무 문자 1개 이상
  • ? : 문자 1개 or 0개 : a? : a 1개 or 0개
  • {n} : 문자 n개 : \d{3} : 숫자 3개
  • {a,b} : 문자 a개 이상, b개 이하 : \d{1,5} : 숫자 1개 이상 5개 이하
  • \ : 특수 문자 표시 : *? : *?
  • [] : 리스트 중 일치 : [A-Z]{2} : A~Z 중 2개
  • [^] : 리스트 제외 : [^TAB] : 탭을 제외한 모든 글자
  • | : 또는 (or) : A|B : A와 B

 

특수문자

  • \d : 숫자 1개
  • \D : 숫자 이외 문자 1개
  • \s : 공백이나 탭 1개
  • \S : 공백이나 탭 이외 문자 1개
  • \w : 알파벳 1개
  • \W : 알파벳 이외의 문자 1개
  • \A : 문자열 처음과 매치
  • \Z : 문자열 끝과 매치
  • \b : 단어 구분자
  • \B : \b와 반대

 

함수

  • math() : 문자열의 처음부터 정규식과 매치되는지 조사
  • search() : 문자열 전체를 검색하여 정규식과 매치되는지 조사
  • findall() : 정규식과 매치되는 모든 문자열을 리스트로 반환
  • finditer() : 정규식과 매치되는 모든 문자열을 반복 가능한 객채로 반환

 

컴파일 옵션 ex) re.compile("a.b", re.DOTALL), or re.compile("a.b", re.S)

  • DOTALL(S) - . 이 줄바꿈 문자를 포함하여 모든 문자와 매치할 수 있도록 한다.
  • IGNORECASE(I) - 대소문자에 관계없이 매치할 수 있도록 한다.
  • MULTILINE(M) - 여러줄과 매치할 수 있도록 한다. (^, $ 메타문자의 사용과 관계가 있는 옵션이다)
  • VERBOSE(X) - verbose 모드를 사용할 수 있도록 한다. (정규식을 보기 편하게 만들수 있고 주석등을 사용할 수 있게된다.)

 

 

 

python 코드 https://github.com/simbj9074/Python-re/blob/main/re.ipynb

[참고 문헌] 점프 투 파이썬, "https://wikidocs.net/1669"

 

+ Recent posts