728x90
반응형

정규표현식(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']
728x90
반응형

+ Recent posts