구글 애널리틱스(Google Analytics)를 사용한다면 데이터 분석 시 정규 표현식 혹은 정규식(Regex)을 종종 접하게 됩니다. 정규 표현식을 사용하면 특정 데이터를 수집할 수 있지만 복잡해 보이는 문자열들로 어떻게 써야 할지 당황하신 경우가 있을 겁니다. 이번 포스트를 읽는다면 정규식을 이해할 수 있게 되며 이를 이용하여 구글 애널리틱스 (Google Analytics) 와 구글 데이터 스튜디오 (Google Data Studio) 에서 데이터 분석을 좀 더 수월하게 할 수 있습니다.
💡아래에서 관심 있는 주제를 클릭하여 해당 본문으로 바로 이동해보세요.
정규 표현식(Regex) 란?
정규 표현식 또는 정규식이란 광범위한 데이터 내에서 특정한 규칙을 가지고 있는 문자열을 표현하고 세부적인 패턴을 찾아 매칭합니다. 즉 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어입니다. 문자열을 통해 세부적인 패턴을 필터링을 통해 빠르게 찾을 수 있기 때문에 정규식은 데이터 분식에 매우 유용합니다. 구글 애널리틱스에서 정규식을 사용하는 항목은 잠재고객, 콘텐츠 그룹, 목표, 보기 필터, 세그먼트, 채널 그룹 등이 있습니다. 마지막으로 구글 정규식을 공부할 때 주의할 점이 있습니다. 구글 정규식은 파이썬과 자바에서 쓰이는 정규식과 문법이 다릅니다. 따라서 파이썬 및 자바 정규식과 혼돈 하시면 안됩니다.
정규 표현식 패턴 및 특수문자
정규 표현식에는 와일드 카드(Wild Cards), 앵커Anchors), 그룹(Group), 이스케이프(Escape)가 있습니다
와일드 카드
. | 모든 문자 하나와 매칭 | g. g가 들어간 모든 단어들은 매칭이 된다. |
* | 앞의 문자와 0번 이상 동일 | x* (반복 여부 표현) x문자가 0번 또는 그 이상 반복 |
? | 앞의 문자가 존재할 수도 존재 하지 않을 수도 있음 | x? (존재 여부) x문자가 존재하는지 안하는지 |
+ | 앞의 문자와 1회 이상 동일 | x+ (반복 표현) x 문자가 한 번 이상 반복 |
| | or 를 표현 | x|y (or) x 또는 y 문자가 존재함 |
앵커
^ | 문자열의 시작을 표현 | ^x x문자로 시작됨 |
$ | 문자열의 종료를 표현 | $x x문자로 종료 |
그룹
( ) | 표현식 그룹 화 혹은 ( ) 안에 있는 문자열 순서대로 일치 | (xy) xy 순서대로 모두 포함 |
[ ] | [ ] 안에 있는 문자열을 순서 상관없이 포함 | [xyz] (문자 선택 표현) x, y, z 중 하나 혹은 모두 다 포함 |
[^ ] | [ ] 안에 있는 문자열을 포함하지 않은 문자열 | [^xyz] x, y, z 중 하나 혹은 모두 포함하지 않음 |
_ | – 범위에 해당하는 문자열을 포함 | x-z x부터 z까지 |
이스케이프
\ | 정규 표현식 아닌 문자로 표현하고 싶을 때 | \? ?는 정규 표현식이 아닌 문자로 사용 |
플래그
g | 모든 문자와 여러 줄 일치 |
i | 영어 대소문자 구분하지 않고 일치 |
m | 여러 줄 일치 |
u | 유니코드 |
y | lastIndex 속성으로 지정된 인덱스에서만 1회 일치 |
정규 표현식 테스트 및 예제
배운 정규식을 사용하여 5개의 URL페이지 중 2번만 추출해 내는 식을 만들어 봅시다.
- 1) https://www.google.co.jp
- 2) https://www.google.com/tbwa/?
- 3) https://www.google.co.kr/-tbwa/?
- 4) http://www.google.com
- 5) http://www.google.com/
1. “^” , “.” 와 “*”을 사용하여 https로 시작하는 URL만 분류합니다.
정규 표현식: ^https.*
결과:
- 1) https://www.google.co.jp
- 2) https://www.google.com/tbwa/?
- 3) https://www.google.co.kr/-tbwa/?
2. “$”을 사용하여 ?로 끝나는 URL만 골라냅니다. 여기서 주의할 점은 ? 은 정규 표현식이기 때문에 그냥 문자라는 것을 나타내기 위해 “\”을 활용합니다.
정규 표현식: ^https.*\?$
결과:
- 2) https://www.google.com/tbwa/?
- 3) https://www.google.co.kr/-tbwa/?
3. “\” 앞에 “[^]”을 사용해서 -tbwa가 들어간 URL을 제거합니다.
정규 표현식: ^https.*[^-]\?$
결과:
- 2) https://www.google.co.kr/tbwa/
팁: 정규식은 간단할 수록 좋기 때문에 최대한 간결하게 만드는 게 좋습니다.
정규 표현식 사이트 모음
내가 작성한 정규식이 맞는지 헷갈릴 때가 있을 겁니다. 그럴 때 다음 정규식 사이트에 들어가시면 내가 쓴 정규식을 확인할 수 있습니다. 아래 사이트는 정규식 사이트 중 가장 유명한 사이트입니다.
데이터 분석을 간편하게 할 수 있게 도와주는 정규 표현식에 대해 살펴봤습니다. 정규 표현식을 이용하면 효율적으로 원하는 문자열만 세부적으로 필터링하여 데이터를 빨리 찾을 수 있습니다. 구글 애널리스틱 혹은 데이터 스튜디오에서 분석할 때 일일이 다 필터링하느라 고생하셨던 분들은 정규 표현식을 꼭 사용해 보길 바랍니다.
핑백: ChatGPT 실전 활용법 - 디지털 마케팅 - TBWA 데이터랩