본문 바로가기

Wiki/SQL

구글 빅쿼리에서 정규표현식 함수 REGEXP_CONTAINS를 사용하여 문자열 필터링하기

  • 빅쿼리 정규표현식 함수인 REGEXP_CONTAINS를 사용하여 값을 필터링하는 방법에 대한 글입니다.

소개

  • 문자열을 다루다보면, LIKE만으로는 필터링하기 어려운 문자열들이 있습니다.
  • 그럴 때 빅쿼리에서 사용할 수 있는 것이 REGEXP_CONTAINS 함수입니다.

사용법

  • 아래 코드블럭과 같이 사용할 수 있습니다.
  • 정규표현식은 정규표현식 라이브러리인 re2를 지원합니다. 따라서 re2에서 지원하지 않는 정규표현식 문법들은 이 함수에서도 쓸 수 없습니다.
  • 이 함수는 SELECT문과 WHERE문에서 쓸 수 있습니다.
    • SELECT문에서 쓰면, TRUE 또는 FALSE의 형태로 반환되고,
    • WHERE문에서 쓰면, 쿼리 결과에서 정규표현식을 만족시키는 값들만 반환합니다.
REGEXP_CONTAINS(문자열, 정규표현식)

예제

  • 예를 들어, 고객이 유효한 이메일 도메인을 입력했는지 확인하고 싶을 때 아래와 같은 방법을 쓸 수 있습니다. 
SELECT customer,
	   email,
   	   REGEXP_CONTAINS(email, r"@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+") AS is_valid
FROM customer

참고 문서