정규표현식(Regular_Expression)
<정규표현식 패턴>
- 대괄호 [] : 대괄호 안에 있는 문자 중에 하나라도 매치되면 추출
- 점(.) : 앞뒤 문자의 사이에 보통 주로 사용함. 하나의 문자를 의미함
→ 예시 : a.c의 패턴인 경우 "abc", "abc"....
- 반복(*) : 앞의 문자가 0번 이상 반복될 때 추출
→ 예시 : ab*c의 패턴인 경우 "ac", "abc", "abcd", "abbbbbbbbbbc"....
- 반복(+) : 앞의 문자가 1번 이상 반복 될 때 추출
→ 예시 : ab+c의 패턴인 경우 "abc", "abbc", "abbbbbc"...
- 반복({m, n}) : 앞의 문자가 최소 m번, 최대 n번 반복될 때 추출 됨
→ 예시 : a{2, 4}의 패턴인 경우 "aa", "aaa", "aaaa"....
- 시작(^)과 끝($) : 각 문자열의 시작과 끝을 나타냄
→ 예시 : ^abc의 패턴인 경우 "abc"로 시작하는 문자열에 대해 추출
→ 예시 : $abc의 패턴인 경우 "abc"로 끝나는 문자열에 대해 추출
- 물음표(?) : 바로 앞의 문자가 0 또는 1회 나타날 수 있음을 의미함
→ 예시 : a?의 패턴인 경우 "a" 또는 ""일 경우 추출함
- 역슬래시(\) = 이스케이프라고 읽음 : 특수문자를 일반 문자로 인식하게 함
- 소괄호() = 그룹화라고 읽음 : 괄호 안의 패턴을 하나의 그룹으로 묶어서 처리가능
→ 예시 : (abc)+의 패턴인 경우 "abc", "abcabc", "abcabcabc"....
- [0-9] : 0에서 9까지의 숫자중 하나
- [!@#$%^&*(),.?";{}|<>] : 특수 기호 중 하나
- [ㄱ-ㅎㅏ-ㅣ가-힣] : 한글 중 하나
- [a-zA-Z] : 알파벳 소문자 또는 대문자 중 하나
- \d : 숫자 중 하나
- \b : 단어의 경계를 나타냄(보통 문장의 처음과 끝에 제시)
→ 위의 패턴들은 조합해서 사용 가능
정규표현식 쓰기 위해 라이브러리 불러오기
import re
"abcdefg" 문자열에서 ade에 대한 문자만 추출하기
- r은 패턴을 인식시켜주는 역할
- findall : 임의 문자열에서 패턴에 맞는 값을 모두 찾아서 리스트 타입으로 반환한다.
text = "abcdefg"
### 추출할 패턴 정의하기
pattern = re.compile(r"[ade]")
### text 문자열에서 패턴에 맞는 값만 추출하기
rs_text = pattern.findall(text)
print(rs_text)
['a', 'd', 'e']
점(.) 패턴을 이용하기
- 문자열 "abcdef afceeeazc"에서 a로 시작해서 c로 끝나는 3단어 추출하기
- 출력 예시 : [abc, afc, axc]
text = "abcdef afceeeazc"
pattern = re.compile(r'a.c')
rs_test = pattern.findall(text)
print(rs_test)
['abc', 'afc', 'azc']
'Digital Boot > Python' 카테고리의 다른 글
[Python] 파이썬 회원전용 도서관리 프로그램 만들기 실습 (2) | 2023.11.17 |
---|---|
[Python] 파이썬 알고리즘 프로그램 실습 (0) | 2023.11.17 |
[Python] 파이썬 제너레이터(Generator) (0) | 2023.11.16 |
[Python] 파이썬 이터레이터(Iterator) (0) | 2023.11.16 |
[Python] 파이썬 데코레이터(Decorator) (2) | 2023.11.14 |