re - 라이브러리의 한 종류로 주로 정규 표현식을 구현할 때 사용, 메소드로는 sub, compule, findall등이 있다.
정규 표현식 기호 및 설명
1. * : 바로 앞에 있는 문자, 하위 표현식이 0번 이상 반복됨을 나타냄
2. + : 바로 앞에 있는 문자, 하위 표현식이 1번 이상 반복됨을 나타냄
3. [] : 대괄호 안에 있는 문자 중 하나가 나타남
4. () : 괄호 안의 정규식을 하위 표현식 그룹으로 만듦, 정규 표현식을 평가할 때는 하위 표현식이 가장 먼저 평가됨
5. . : 어떠한 형태든 문자 1자를 나타냄
6. ^ : 바로 뒤에 있는 문자, 하위 표현식이 문자열 맨 앞에 나타남
7. $ : 바로 앞에 있는 문자, 하위 표현식이 문자열 맨 뒤에 나타남
8. {m} : 바로 앞에 있는 문자, 하위 표현식이 m회 반복됨
9. {m, n} : 바로 앞에 있는 문자, 하위 표현식이 m번 이상, n번 이하 나타남
10. | : |로 분리된 문자, 문자열, 하위 표현식 중 하나가 나타남
11. [^] : 대괄호 안에 있는 문자를 제외한 문자가 나타남
예) @*, +
import re // 라이브러리 사용을 위한 import
r = re.compile("a+b*") //a문자가 1번 이상 반복됨, b문자가 0번 이상 반복됨
r.findall("aaaa, cc, bbbb, aabbb") //이 네 가지 중 위의 조건에 부합하는 문자열을 찾음
결과 -> ['aaaa', 'aabbb'] // 결과값
@[]
r = re.compile("[A-Z]+") //영문자 대문자 중 한 문자가 1번 이상 반복됨
r.findall("HOME, home") //이 두 가지 중 위의 조건에 부합하는 문자열을 찾음
결과 -> ['HOME'] //결과값
@^, .
r = re.compile("^a..") //a가 맨 앞에 오고 그 다음에 어떠한 형태든 2개의 문자가 오는 문자열을 찾음
r.findall("abc, cba") //이 두 가지 중 위의 조건에 부합하는 문자열을 찾음
결과 -> ['abc'] //결과값
@{m, n}
r = re.compile("a{2, 3}b{2, 3}") //a가 2번 이상 3번 이하 반복되고, b가 2번 이상 3번 이하 반복되는 문자열을 찾음
r.findall("aabb, aaabb, ab, aab") //이 네 가지 중 위의 조건에 부합하는 문자열을 찾음
['aabb', 'aaabb'] //결과값
@complie 메서드에 정규 표현식 패턴을 지정, search 메서드에 문자열을 넣고 패턴을 찾음
p = re.compile(".+:")
m = p.search("http://google.com")
m.group()
결과 -> 'http:'
@sub 메서드를 이용하여 정규 표현식과 일치하는 부분을 다른 문자로 대체 가능
p = re.compile("(내|나의|내꺼)")
p.sub("그의", "나의 물건에 손대지 마시오.")
결과 -> '그의 물건에 손대지 마시오.'
@\W 로 특수 문자 제거 가능
p = re.compile("\W+")
p.sub("", "★서울 부동산")
결과 -> '서울 부동산'
'개인공부 > Python(Anaconda, NLTK)' 카테고리의 다른 글
Python (wordCloud) 실습 (0) | 2019.10.14 |
---|---|
Python(PorterStemmer, LancasterStemmer, RegexpStemmer) (0) | 2019.10.14 |
Python(numpy) (0) | 2019.10.11 |
Python (Pandas.DataFrame) (0) | 2019.10.11 |
Python (Pandas.Series) (0) | 2019.10.11 |