NLP를 학습할 때 이용했던 개념. 문자열의 패턴을 나타낸다.
데이터분석전에 데이터구분을 위해 활용
정규표현식 라이브러리 import re
다른언어의 연산자나 예약어의 역할을 한다.
특별한 용도로 사용하는 문자를 의미
정규표현식에 메타문자를 이용하여 의미를 부여한다.
. ^ $ * + ? { } [ ] \ | ( )
와 같은 것들이 존재
개인적으로 NLP때 가장 많이 사용했던 클래스.
[ ]
사이의 문자들과 매치
정규 표현식이 [cola]
라면 이 표현식은 c, o, l, a 중 한 개의 문자와 매치를 의미한다.
위의 경우 예를 들어 can의 경우 c가 존재하므로 매치, gift의 경우 존재하지 않으므로 매치 x
[ ]
사이에 하이픈 -
을 이용하면 두 문자 범위 내의 값을 포함한다.
예를 들어 [0-5]
라면 [012345]
를 의미
공백문자는 \t\n\r\f\v
가 있다.
문자 | 기능 |
---|---|
\d | 숫자와 매치 |
\D | 숫자 외의 것과 매치 |
\s | 공백 문자와 매치 |
\S | 공백 문자 아닌것과 매치 |
\w | 문자+숫자와 매치 |
\W | 문자+숫자가 아닌 것과 매치 |
줄바꿈 문자를 제외한 모든 문자와 매치
a.b의 경우 a와 b 사이에 어떠한 문자가 들어가도 매치
[.]
의 경우 단순히 문자. 를 의미하므로 착각하지 않도록 주의
*
앞의 문자를 반복되면 매치
c*ola 라면 cooooooola도 매치된다고 보면 된다.
+
앞의 문자가 1번이상 반복되면 매치
앞의 *
가 0회 이상 반복이라면 +
는 1회 이상 반복을 의미
반복횟수를 제한하고 싶을 때 사용
co{2}la 라면 coola일 때 매치되는 것이다.
{a,b} 의 형식으로 반복횟수의 범위도 지정가능하다.
있어도 매치, 없어도 매치된다.
{ } 같은 형태보다 간결한 *,+,?
의 형식이 더 좋다고 한다.
준비한 정규표현식을 바탕으로 조건에 맞는 것을 검색하는 메서드다.
메서드 | 기능 |
---|---|
match | 문자열의 처음부터 매치 확인 |
search | 문자열 전체를 매치 확인 |
findall | 매치되는 문자열을 list로 반환 |
finditer | 매치되는 문자열을 iterable한 객체로 반환 |
앞의 검색메서드로 나온 객체에 대한 메서드다.
메서드 | 기능 |
---|---|
group | 매치된 문자열 반환 |
start | 매치된 문자열 시작위치 반환 |
end | 매치된 문자열 마지막위치 반환 |
span | 매치되는 문자열의 시작,마지막에 해당하는 튜플 반환 |
re.DOTALL, re.S : 줄바꿈 문자도 포함하여 매치
re.IGNORECASE, re.I : 대소문자 구별없이 매치
re.MULTILINE, re.M :^
, $
메타 문자를 문자열의 각 줄마다 적용, 즉 각 줄마다 조건을 적용한다. ( ^는 문자열의 처음, $는 문자열의 마지막을 의미한다. )
re.VERBOSE, re.X : 문자열의 공백이 컴파일 할 때 제거된다. [ ]
안의 공백은 제거되지 않는다. (이를 이용할 시 #로 문자열에 주석 작성도 가능하다!)