CastleJo의 개발일지

Regular Expressions

|

목차

맨날 검색해야만 아는 RE 정규식을 좀 정리해봤습니다.

메타문자

  1. .
    • \n을 제외한 모든 문자 중 1개
    • "a.b" in [“aab”, “acb”] / not in [“ab”, “abc”, “a”]
  2. {start, end}
    startend 사이의 갯수, range(start,end+1)
    start, end는 생략 가능, 0 또는 무한대로 수렴함
    • * : {0,}
    • + : {1,}
    • ? : {0,1}
    • "a*" in [“aaaa”, “a”, “”]
    • "a+" in [“aaaa”, “a”] / not in [””]
    • "a?" in [“a”, “”] / not in [“aa”]
  3. []
    문자 클래스
    [ ] 중 한개
    [a-zA-Z]와 같은 식으로 사용
    • \d == [0-9]
    • \D == [^0-9] (not \d)
    • \s == [ \t\n\r\f\v] (공백만)
    • \S == [^ \t\n\r\f\v] (공백 제외)
    • \w == [a-zA-Z0-9] (문자와 숫자)
    • \W == [^a-zA-Z0-9] (문자와 숫자 제외)
  4. |
    aka, OR
    • "abc \| efg" in [“abc”,”efg”]
  5. ^
    문장의 맨 앞
    • "^ab" in [“ab”] / not in [“cccab”]
  6. $
    문장의 맨 뒤
    • "ab&" in [“ab”] / not in [“abccc”]
  7. 메타문자를 원치 않을경우
    • r”패턴”

re 함수들

  1. pattern = re.compile("패턴), pattern.match("문자열") 등등
    • 동일한 패턴을 여러번 사용할 때
    • 그 외에는 잘 안쓰는 느낌
  2. re.search("패턴","문자열")
    • 문자열 내에서 해당 패턴이 부분적으로 존재하는지
    • 존재하는것이 없다면 None 반환
    • 하나라도 존재한다면 m.group() 함수를 가진 일치 객체를 반환
    • m.group(0) or m.group() : 해당하는 문자열 전체 반환
    • m.group(n) : n번째로 일치하는 문자열 반환
  3. re.match("패턴","문자열")
    • 시작 부분부터 문자가 일치한다면 일치 객체 반환
  4. re.fullmatch("패턴","문자열")
    • 문자열의 전체가 일치한다면 일치 객체 반환
  5. re.findall("패턴","문자열")
    • 패턴에 해당하는 부분 문자열들을 리스트로 반환
  6. re.sub("패턴","바꿀 문자열","문자열)
    • 패턴에 해당하는 부분 문자열을 바꿀 문자열로 치환
    • list의 replace와 같지만 정규식 표현이 가능