메타문자
: 정규표현식에서 사용함. 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자를 말함.
문자 집합 \w \W \d \D \s \S \b \B
\w \W 단어, 비단어문자
re패키지 기본 메소드
import re 필수
re.match(pattern, string, flags)
문자열 처음부터 패턴이 일치되는 것
import re
matchObj = re.match('a','a')
print("1:",matchObj)
print("2:",re.match('a','aba'))
print("3:",re.match('a','bbb'))
print("4:",re.match('a','baa'))
re.search(patter,string,flags)
re.match와 비슷하나 문자열의 처음부터 일치하지 않아도됨
import re
matchObj = re.search('a','a')
print("1:",matchObj)
print("2:",re.search('a','aba'))
print("3:",re.search('a','bbb'))
print("4:",re.search('a','baa'))
re.findall
문자열 중 패턴과 일치되는 모든 부분(문자열 리스트로 반환 ->리스트 형태이기에 group()사용 불가)
import re
matchObj = re.findall('a','a')
print("1:",matchObj)
print("2:",re.findall('a','aba'))
print("3:",re.findall('a','bbb'))
print("4:",re.findall('a','baa'))
re.finditer(pattern,string,flags)
re.findall과 비슷하나 문자열 리스트가 아닌 matchObj 리스트를 반환
matchObj_iter = re.finditer('a','baa')
print("1:", matchObj_iter)
for matchObj in matchObj_iter:
print(matchObj)
re.fullmatch
패턴과 문자열이 완벽히 일치하는지 검사
import re
matchObj = re.fullmatch('a','a')
print("1:",matchObj)
print("2:",re.fullmatch('a','aba'))
print("3:",re.fullmatch('a','bbb'))
print("4:",re.fullmatch('a','baa'))
match object를 활용하는 방법
method | descrption |
group() | 일치된 문자열 반환 |
start() | 일치된 문자열 시작위치 반환 |
end() | 일치된 문자열 끝 위치 반환 |
span() | 일치된 문자열 (시작, 끝 위치) 튜플 반환 |
matchObj = re.search('match',"'matchObj' is a good name, but 'm' is convenitent.")
print(matchObj)
print(matchObj.group())
print(matchObj.start())
print(matchObj.end())
print(matchObj.span())
matchObj = re.findall('\t ', 'a\tb\tv\t \t d')
print(matchObj)
\d, \D : 숫자문자 1개, 비숫자 문자 1개
matchObj = re.findall('\d\d', '12abc34')
print(matchObj)
matchObj = re.findall('\d\d\D\D', '12abc34')
print(matchObj)
\s, \S : 공백문자, 비공백문자 (빈칸 ' ', 탭 '\t', 개행 '\n')
matchObj = re.findall('Oh\smy\s\S', '''Oh my god!''')
print(matchObj)
\b, \B : 공백문자, 공백문자로 구분되지 않은 단어
p = re.compile(r'\Bclass\B')
print(p.search('no class at all'))
print(p.search('the devlassified algorithm'))
반환 변수 = re.compile(r'문자집합 또는 메타문자')
메타 문자 (. ^ $ * + ? { } [ ] \ | ( ) )
앵커 : 문자와 일치되는 것이 아닌 정규식 패턴을 특정 위치에 고정시켜 그 위치에 일치시키는 역할 (^,$, \A, \Z)
^ 문자열의 맨 처음과 일치 (\A 문자열 시작과 일치)
print(re.search('^Life','Life is too short'))
$ 문자열 맨 끝과 일치 (\Z 문자열 끝과 일치)
print(re.search('short$','Life is too short'))
| or과 동일한 의미
p = re.compile('Crow|Servo')
m = p.match('CrowHello')
print(m)
() 그룹을 만들어 주는 메타문자. 안에 문자 집합 또는 메타문자가 들어갈 수 있다.
그루핑 : ('반복될 문자')가 계속해서 반복되는지 조사함.
(abc)+ 최소 1번이상 반복
print(re.findall('(abc)+','abc abc abc ok?'))
(abc){n} 딱 n번만 반복
print(re.findall('(abc){2}','abcabc abc ok?'))
문자집합 : []로 나타냄. 안에 정규표현식을 넣는듯?
'정리 > 정보 요약' 카테고리의 다른 글
[정보] 인스타 크롤링 해보기 (0) | 2021.07.20 |
---|---|
[정보] 동적 웹 크롤링 (0) | 2021.07.20 |
[정보] 정적 웹크롤링 (0) | 2021.07.19 |
댓글