파이썬 빅데이터 분석

파이썬 데이터 분석 입문 1.4.3

um_coding 2023. 7. 16. 23:16

정규 표현식과 패턴 매칭

다양한 비즈니스 분석에서 정규 표현식이라는 패턴 매칭이 사용된다.  예를 들어 특정 지역(예를 들어 서울)의 모든 주문에 대한 분석을 실행할 필요가 있다고 가정해보자. 이 경우, 찾고 싶은 패턴은 "서울"이라는 단어이다. 이와 유사하게 StaplesRus라는 특정 회사의 제품 품질을 분석하길 원한다면, 찾고자 하는 패턴은 "StaplesRus"이다.

re.compile함수는 텍스트  기반의 패턴을 정규 표현식으로 컴파일한다. 첫행에서 변수 string에 문자열 The quick brown fox jumps over the lazy dog.를 할당한다. 다음 줄에서는 이 문자열을 각 단어 별로 나눠 리스트에 담는다.

그 다음 줄은 정규 표현식을 만들기 위한 re.compile, re.I함수, 그리고 원시 문자열임을 나타내는 표기법인 r을 사용했다. re.compile함수는 텍스트 기반의 패턴을 정규표현식으로 컴파일한다. re.I 대/소문자 구분 없이 해준다. 원시 문자열 표기법 r은 파이썬이 문자열 내에서 \,\t,\n과 같은 특별한 문자들을 따로 처리하지 않도록 해준다.

다음 줄에서는 리스트 내 각 단어에 대해 앞에서 설정한 정규 표현식을 비교하기 위해 re.search함수를 이용한다. 이 함수는 해당 단어가 정규표현식과 일치한다면 True를 출력하고, 그렇지 않다면, None이나 False를  출력한다. 이 줄에 있는 if문은 '만약 단어가 정규표현식과 일치한다면 count변수에 1을 더한다.'를 의미한다.

따라서 마지막 print문의 문자열 내에서 대/소문자와 상관없이 패턴 "The"가 발견된 정규 표현식의 횟수를 출력한다.

re.sub함수를 사용하여 텍스트 내의 특정 패턴을 다른 패턴으로 교체하는 방법을 보여준다.

먼저 변수 a_to_find에 정규 표현식을 할당하는 부분을 보자. 이 변수는 다음 줄에서 re.compile함수에 전달된다. 앞의 예제들에서 보았듯, re.compile을 수행하기 전에 변수에 미리 정규 표현식을 할당해야만 할 필요가 꼭 있는 것은 아니다. 하지만 정규 표현식이 매우 길고 복잡하다면 우선 변수에 할당하고 re.compile 함수에는 그 변수를 전달하는 편이 코드의 가독성을 높여줄 것이다.

 

그 다음 새로운 코드는 마지막 줄에 있다. re.sub함수로 변수 a내에서 "the"패넡을 대/소문자 에 상관없이 찾고, 이 패턴이 등장한 것들을 소문자 'a'로 교체하기 위해 re.sub함수를 이용한다.