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와 같지만 정규식 표현이 가능