import re
p= re.compile('[A-B]?c')
# 문자열 처음부터 정규식과 매치되는지 확인
# match된다면 match되는 정보를 match되지 않는다면 None을 return
result = p.match("확인하기 원하는 문자열")
result.group() # : 매치된 문자열 확인
result.start() # : 매치된 문자열 시작 위치 확인
result.end() # : 매치된 문자열 끝 위치 확인
result.span() # : tuple(시작 위치, 끝 위치)
# 문자열 처음부터가 아닌 문자열 전체중 매치되는 문자열이 존재하는지 확인
# match된다면 match되는 정보를 match되지 않는다면 None을 return
result = p.search("확인하기 원하는 문자열")
# 문자열 전체에서 매치되는 문자열을 모두 찾아 반환한다.
# match되는 문자열이 하나이상 존재시 해당 문자열들을 list 형태로 return
result = p.findall("확인하기 원하는 문자열")
# 문자열 전체에서 매치되는 문자열을 모두 찾아 반환한다.
# match되는 문자열이 하나이상 존재시 findall과는 다르게 반복가능한 객체(iterator object)를 돌려준다.
result = p.finditer("확인하기 원하는 문자열")
문자 클래스 [ ]
: 비교대상인 하나의 문자가 [ ] 사이의 문자들중 하나와 매치
예 1. [abc] : a,b,c 중 한개의 문자와 매치
예 2. [a-zA-Z] : 모든 알파벳
예 3. [0-9] : 숫자로 표현된 문자와 매치
Dot .
: \\n
을 제외한 모든 문자가 가능
→ [.]
로 문자 클래스 안에 있는 Dot은 그냥 .
만 매칭됨
반복 *
and +
and {}
: *
는 0번 이상 반복 가능 and +
는 1번 이상 반복 가능 and {}
는 횟수를 정해 반복
예 1) ap*l
→ al 가능 , ap+l
→ al 불가능
예 2) ap{3}l
→ apppl 만 가능 , ap{2,5}l
→ appl 부터 apppppl 까지만 가능
?
: 있어도 되고 없어도 됨
예 ) ap?l
→ al , apl 둘다 가능
^
: 표현식 맨 앞에 위치하고 문자열의 맨 처음이어야 한다는 의미
$
: 표현식 맨 뒤에 위치하고 문자열의 맨 마지막이어야 한다는 의미
++ \\(백슬래시)
를 표현식에 사용하고 싶다면 \\\\
다음과 같이 이스케이프 처리해서 사용하니 주의
→ r‘~~’
과 같이 \\\\\\\\
처럼 백슬래시가 너무 많이 쓰일때 사용하는 Raw String 규칙도 존재하니 백슬래시가 너무 과하게 쓰이면 참고하자
list(set(
list[]))
: list 중복된 값을 없앨때 사용하자!set()
연산 &
(교집합), |
(합집합), -
(차집합) 을 적절히 사용하자!