반응형
정규표현식 - 특정 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어(문자열)를 처리할 때 사용하는 기법
문자 클래스 [ ]
- [ ] - [ ] 사이의 문자들과 매치
- ex)
- [a-zA-Z] - 알파벳 모두
- [0-9] - 숫자
Dot(.)
- a.b - a와 b 사이의 모든 문자 매치 // \n을 제외한 모든 문자 한 개와 매치 // 여러개 사용 가능
- ex)
- a.b - "aab", "a1b", "a#b" 모두 매치
- a..b - "axxb", a"22b", a##b" 모두 매치
import re
s = "a1234bllla#b"
p = re.compile('a.b')
m = p.findall(s)
print(m)
# ['a#b']
s = "a1234bllla#!@b"
p = re.compile('a...b') # .이 3개
m = p.findall(s)
print(m)
# ['a#!@b']
a[.]b - 위의 모든 문자의 의미 아님 주의// . 그대로 의미
import re
s = "a.b"
p = re.compile('a[.]b') # .이 3개
m = p.findall(s)
print(m)
* (반복)
- 0회 이상 반복(없어도 상관 없음)
import re
s = "aaaaab"
p = re.compile('a*b')
print(p.findall(s)) # ['aaaaab']
+ (반복)
- 1회 이상 반복
import re
s = "ab"
p = re.compile('a+b')
print(p.findall(s)) # ['ab']
s = "abababcd"
p = re.compile('ab+')
print(p.findall(s)) # ['ab']
{} (반복)
- ex)
- {a,b} - a회 이상 b회 이하 반복횟수 지정
import re
text = 'hi my naame is nahi naaaa'
p = re.compile('na{1,2}')
print(re.findall(p, text))
# ['naa', 'na', 'naa']
- | or 조건식
import re
text = 'hi my naame is nahi naaaa'
p = re.compile('my|hi')
print(re.findall(p, text))
# ['hi', 'my', 'hi']
- ^ 문자열의 시작
import re
text = 'hello hi i am a boy'
p = re.compile('^hello')
print(re.findall(p, text))
# ['hello']
- $ 문자열의 끝
import re
text = 'hello hi boy i am a boy'
p = re.compile('boy$')
print(re.findall(p, text))
# ['boy']
- ? 있어도 되고 없어도 됨
- ex)
- ab?c -- abc --> match("b"가 1번 사용됨)
- ab?c -- ac --> match("b"가 0번 사용됨)
- ex)
import re
text = 'dont forget fo foo'
p = re.compile('fo?')
print(re.findall(p, text))
# ['fo', 'fo', 'fo']
- \ - 메타 문자를 일반 문자로 인식
- () - 그룹핑, 추출할 패턴 지정, 검색 결과의 특정 부분만 출력
반응형
'-------------코딩------------- > Python 기초 코딩' 카테고리의 다른 글
정규표현식 - match 객체 method (0) | 2021.02.23 |
---|---|
정규표현식 - 사용방법(컴파일) (0) | 2021.02.23 |
네이버 주식 크롤링 (0) | 2020.11.02 |
ValueError: invalid literal for int() with base10: ' ' (0) | 2020.10.19 |
네이버 인기검색어 크롤링 (0) | 2020.10.19 |
댓글