반응형
정규표현식은 왜 필요한가 ?
예를 들어 주민번호
920116-*******
문자열 관련된 복잡한 코딩을 단순화 해줄 수 있다.
match
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("3python")
print(m)
>>>
None
a-z 사이의 값이 아닌 다른게 들어가면 None값이 나온다.
search
import re
p = re.compile("[a-z]+")
m = p.search("3python")
print(m)
>>>
<re.Match object; span=(1, 7), match='python'>
다른 값이 섞여 있어도 기존 값에 맞는 값이 있으면 찾아 준다.
findall
import re
p = re.compile("[a-z]+")
m = p.findall("life is too short")
print(m)
>>>
['life', 'is', 'too', 'short']
finditer
import re
p = re.compile("[a-z]+")
m = p.finditer("life is too short")
for i in m:
print(i)
>>>
<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'>
match 객체 의 메서드
- group()
- start()
- end()
- span()
import re
p = re.compile("[a-z]+")
m = p.match("python3")
print(m.group())
print(m.start())
print(m.end())
print(m.span())
>>>
python
0
6
(0, 6)
compile option : re.DOTALL
import re
p = re.compile("a.d", re.DOTALL)
m = p.match("a\nd")
print(m)
>>>
<re.Match object; span=(0, 3), match='a\nd'>
ignorecase
import re
p = re.compile("[a-z]", re.I)
m = p.match("Python")
print(m)
>>>
<re.Match object; span=(0, 1), match='P'>
multiline
import re
p = re.compile("^python\s\w+",re.M)
data = """python one
life is too short
python two
you need python
python three"""
m = p.findall(data)
print(m)
>>>
['python one', 'python two', 'python three']
반응형
'Python' 카테고리의 다른 글
PYTHON - 알고리즘 개발 매장 고객 관리 및 포인트 관리 시스템 (0) | 2023.05.17 |
---|---|
PYTHON 알고리즘 - 표준 체중을 구하는 프로그램 코드 (0) | 2023.05.17 |
PYTHON - 프로그래머스 스쿨 문제 : 마라탕 (0) | 2023.04.06 |
PYTHON 특징 설치 기초 문법 - 숫자형, 문자열, List (0) | 2023.03.23 |
PYTHON 문법 - Class , 상속 , 모듈에 대해 코드를 통해 알아보자 (1) | 2023.03.18 |
PYTHON - 프로그래머스 스쿨 문제 : 각도기 (0) | 2023.03.12 |