[컴퓨터 공학] 정규표현식

Colacan·2022년 5월 31일
1

[컴퓨터 공학]

목록 보기
1/3

정규표현식

NLP를 학습할 때 이용했던 개념. 문자열의 패턴을 나타낸다.

  1. 데이터분석전에 데이터구분을 위해 활용

  2. 정규표현식 라이브러리 import re

정규표현식 메타문자

다른언어의 연산자나 예약어의 역할을 한다.

  1. 특별한 용도로 사용하는 문자를 의미

  2. 정규표현식에 메타문자를 이용하여 의미를 부여한다.

  3. . ^ $ * + ? { } [ ] \ | ( ) 와 같은 것들이 존재

문자 클래스 [ ]

개인적으로 NLP때 가장 많이 사용했던 클래스.

  1. [ ] 사이의 문자들과 매치

  2. 정규 표현식이 [cola]라면 이 표현식은 c, o, l, a 중 한 개의 문자와 매치를 의미한다.

  3. 위의 경우 예를 들어 can의 경우 c가 존재하므로 매치, gift의 경우 존재하지 않으므로 매치 x

  4. [ ] 사이에 하이픈 - 을 이용하면 두 문자 범위 내의 값을 포함한다.

  5. 예를 들어 [0-5] 라면 [012345]를 의미

[ ] 외의 문자클래스

공백문자는 \t\n\r\f\v 가 있다.

문자기능
\d숫자와 매치
\D숫자 외의 것과 매치
\s공백 문자와 매치
\S공백 문자 아닌것과 매치
\w문자+숫자와 매치
\W문자+숫자가 아닌 것과 매치

메타문자 .

  1. 줄바꿈 문자를 제외한 모든 문자와 매치

  2. a.b의 경우 a와 b 사이에 어떠한 문자가 들어가도 매치

  3. [.]의 경우 단순히 문자. 를 의미하므로 착각하지 않도록 주의

메타문자 *

  1. * 앞의 문자를 반복되면 매치

  2. c*ola 라면 cooooooola도 매치된다고 보면 된다.

메타문자 +

  1. + 앞의 문자가 1번이상 반복되면 매치

  2. 앞의 * 가 0회 이상 반복이라면 + 는 1회 이상 반복을 의미

메타문자 { }

  1. 반복횟수를 제한하고 싶을 때 사용

  2. co{2}la 라면 coola일 때 매치되는 것이다.

  3. {a,b} 의 형식으로 반복횟수의 범위도 지정가능하다.

메타문자 ?

  1. 있어도 매치, 없어도 매치된다.

  2. { } 같은 형태보다 간결한 *,+,? 의 형식이 더 좋다고 한다.

정규표현식 검색메서드

준비한 정규표현식을 바탕으로 조건에 맞는 것을 검색하는 메서드다.

메서드기능
match문자열의 처음부터 매치 확인
search문자열 전체를 매치 확인
findall매치되는 문자열을 list로 반환
finditer매치되는 문자열을 iterable한 객체로 반환

정규표현식 객체메서드

앞의 검색메서드로 나온 객체에 대한 메서드다.

메서드기능
group매치된 문자열 반환
start매치된 문자열 시작위치 반환
end매치된 문자열 마지막위치 반환
span매치되는 문자열의 시작,마지막에 해당하는 튜플 반환

그 외 re 기능들

  1. re.DOTALL, re.S : 줄바꿈 문자도 포함하여 매치

  2. re.IGNORECASE, re.I : 대소문자 구별없이 매치

  3. re.MULTILINE, re.M :^, $메타 문자를 문자열의 각 줄마다 적용, 즉 각 줄마다 조건을 적용한다. ( ^는 문자열의 처음, $는 문자열의 마지막을 의미한다. )

  4. re.VERBOSE, re.X : 문자열의 공백이 컴파일 할 때 제거된다. [ ] 안의 공백은 제거되지 않는다. (이를 이용할 시 #로 문자열에 주석 작성도 가능하다!)

profile
For DE, DA / There is no royal road to learning

0개의 댓글