import re
p = re.complie()
import re
p = re.compile('[a-z]+')
m = p.match('python')
print(m)
<re.Match object; span=(0, 6), match='python'>
import re
p = re.compile('[a-z]+')
m = p.match('3 python')
print(m)
3 떄문에 메칭이 안되어 none 이 뜬다.
import re
p = re.compile('[a-z]+')
m = p.search('3 python')
print(m)
search는 3이 있어도 찾는다 라는 느낌이어서
<re.Match object; span=(2, 8), match='python'>
잘 뜬다.
import re
p = re.compile('[a-z]+')
m = p.findall('life is too short')
print(m)
['life', 'is', 'too', 'short']
findall의 경우, 일치하는 string을 list에 담아서 return 해준다
import re
p = re.compile('[a-z]+')
m = p.finditer('life is too short')
for r in m:
print(r)
<re.Match object; span=(0, 4), match='life'>
<re.Match object; span=(5, 7), match='is'>
<re.Match object; span=(8, 11), match='too'>
<re.Match object; span=(12, 17), match='short'>
매치되는 문자열을 다 매치객체 형태로 반복 가능한 객체 하나로 리턴한다.
import re
p = re.compile('[a-z]+')
m = p.match('python')
print(m.group())
print(m.start())
print(m.end())
print(m.span())
python
0
6
(0, 6)
group은 매치된 문자열
start 첫 시작의 인덱스 end는 끝
span 시작과 끝을 튜플 형태로
\d - 숫자와 매치, [0-9]와 동일한 표현식이다.
\D - 숫자가 아닌 것과 매치, [^0-9]와 동일한 표현식이다.
\s - whitespace 문자와 매치, [ \t\n\r\f\v]와 동일한 표현식이다. 맨 앞의 빈 칸은 공백문자(space)를 의미한다.
\S - whitespace 문자가 아닌 것과 매치, [^ \t\n\r\f\v]와 동일한 표현식이다.
\w - 문자+숫자(alphanumeric)와 매치, [a-zA-Z0-9_]와 동일한 표현식이다.
\W - 문자+숫자(alphanumeric)가 아닌 문자와 매치, [^a-zA-Z0-9_]와 동일한 표현식이다.
필요할 때 마다 구글링해서 찾아보기. 지금 단계에서는 자세히 공부할 필요가 없을 것 같다.