Regular Expressions
28 Dec 2021 | Python목차
맨날 검색해야만 아는 RE 정규식을 좀 정리해봤습니다.
메타문자
.\n을 제외한 모든 문자 중 1개"a.b"in [“aab”, “acb”] / not in [“ab”, “abc”, “a”]
{start, end}
start와end사이의 갯수,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”]
[]
문자 클래스
[ ]중 한개
[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](문자와 숫자 제외)
|
aka, OR"abc \| efg"in [“abc”,”efg”]
^
문장의 맨 앞"^ab"in [“ab”] / not in [“cccab”]
$
문장의 맨 뒤"ab&"in [“ab”] / not in [“abccc”]
- 메타문자를 원치 않을경우
- r”패턴”
re 함수들
pattern = re.compile("패턴),pattern.match("문자열")등등- 동일한 패턴을 여러번 사용할 때
- 그 외에는 잘 안쓰는 느낌
re.search("패턴","문자열")- 문자열 내에서 해당 패턴이 부분적으로 존재하는지
- 존재하는것이 없다면 None 반환
- 하나라도 존재한다면
m.group()함수를 가진 일치 객체를 반환 m.group(0)orm.group(): 해당하는 문자열 전체 반환m.group(n): n번째로 일치하는 문자열 반환
re.match("패턴","문자열")- 시작 부분부터 문자가 일치한다면 일치 객체 반환
re.fullmatch("패턴","문자열")- 문자열의 전체가 일치한다면 일치 객체 반환
re.findall("패턴","문자열")- 패턴에 해당하는 부분 문자열들을 리스트로 반환
re.sub("패턴","바꿀 문자열","문자열)- 패턴에 해당하는 부분 문자열을 바꿀 문자열로 치환
- list의 replace와 같지만 정규식 표현이 가능