노션 Formula 2.0 정규표현식 활용법|match·replaceAll로 텍스트 정리하기
노션 데이터베이스를 사용하다 보면 한 속성에 필요한 정보와 불필요한 문자가 함께 들어오는 경우가 있습니다.
예를 들어 상품이나 프로젝트 데이터를 관리하면서 다음처럼 값이 저장되어 있다고 해보겠습니다.
PRO-2026-001
여기에서 숫자만 따로 사용하고 싶다면 매번 직접 수정할 수도 있지만 데이터가 많아지면 상당히 번거롭습니다.
이럴 때 노션 Formula의 match()나 replaceAll()을 이용하면 일정한 패턴의 문자열을 찾아 필요한 형태로 정리할 수 있습니다.
replaceAll()로 불필요한 문자 제거하기
가장 이해하기 쉬운 예제부터 살펴보겠습니다.
상품코드 속성에 다음 데이터가 들어 있다고 가정하겠습니다.
PRO-2026-001
여기에서 숫자가 아닌 문자를 모두 제거하고 싶다면 Formula 속성을 하나 만들고 다음처럼 사용할 수 있습니다.
replaceAll(prop("상품코드"), "[^0-9]", "")
결과는 다음과 같습니다.
2026001
[^0-9]는 숫자가 아닌 문자를 찾는 패턴입니다.
따라서 PRO와 -가 제거되고 숫자만 남게 됩니다.
이런 방식은 상품번호나 주문번호처럼 문자와 숫자가 섞여 들어오는 데이터를 정리할 때 활용하기 좋습니다.
이메일에서 도메인 부분만 남겨보기
이번에는 조금 다른 상황을 만들어보겠습니다.
이메일 속성에 다음 값이 있다고 가정합니다.
sample@gmail.com
Formula를 다음처럼 작성합니다.
replaceAll(prop("이메일"), "^[^@]+@", "")
결과는
gmail.com
처럼 나타납니다.
@ 앞부분을 제거해서 도메인만 남기는 방식입니다.
실제 고객 데이터를 관리한다면 회사 이메일과 일반 이메일을 구분하거나 특정 도메인의 데이터를 확인할 때 응용할 수 있습니다.
match()는 언제 사용할까?
replaceAll()이 특정 패턴을 다른 값으로 바꾸거나 제거하는 데 유용하다면 match()는 원하는 패턴에 해당하는 부분을 찾을 때 활용할 수 있습니다.
예를 들어 텍스트에 숫자가 포함되어 있는지 확인하거나 일정한 형태의 문자열을 찾아야 하는 상황입니다.
다만 여기서 주의할 점이 있습니다.
match() 결과를 일반적인 텍스트 값 하나라고 생각하고 다른 함수와 바로 연결하면 예상하지 못한 결과가 나올 수 있습니다.
Formula 2.0에서는 반환되는 값의 형태를 확인하면서 다음 계산을 설계하는 것이 중요합니다.
실제로 많이 생기는 실수
정규표현식을 처음 사용하면 수식을 한 번에 길게 만드는 경우가 많습니다.
예를 들어 데이터에서 특정 부분을 찾고 → 문자를 제거하고 → 조건을 판단하고 → 최종 문구까지 만드는 작업을 하나의 Formula에 전부 넣는 방식입니다.
처음에는 속성 하나로 해결돼 편해 보이지만 나중에 오류가 발생하면 어느 부분이 잘못됐는지 찾기가 어려워집니다.
저라면 먼저 간단한 수식으로 원하는 데이터가 제대로 추출되는지 확인한 다음 조건을 하나씩 추가합니다.
예를 들어,
1단계: 원본 데이터 확인PRO-2026-001
2단계: 불필요한 문자 제거2026001
3단계: 필요한 조건 추가
이런 식으로 테스트하면 오류가 발생한 위치를 찾기가 훨씬 쉽습니다.
빈 값도 확인해야 합니다
실제 데이터베이스에는 모든 행에 값이 들어 있는 것이 아닙니다.
따라서 자동화에 사용하려면 빈 값이 들어왔을 때 어떻게 처리할지도 생각해야 합니다.
예를 들어 상품코드가 비어 있을 경우 그대로 빈 값을 반환하고 싶다면 조건을 추가할 수 있습니다.
if(
empty(prop("상품코드")),
"",
replaceAll(prop("상품코드"), "[^0-9]", "")
)
이렇게 하면 상품코드가 없는 행에서는 불필요한 계산을 하지 않고 빈 값을 반환합니다.
실제 데이터베이스에서는 이런 예외 처리가 꽤 중요합니다.
replace와 replaceAll의 차이도 확인하세요
이름이 비슷해서 처음 사용할 때 헷갈리기 쉬운 부분입니다.
replace()와 replaceAll()은 이름 그대로 처리 범위가 다릅니다.
특정 패턴이 여러 번 등장하는 데이터라면 첫 번째 일치만 처리할 것인지, 일치하는 부분을 모두 처리할 것인지 확인해야 합니다.
특히 긴 문자열이나 반복되는 구분자를 정리할 때는 결과를 몇 개의 테스트 데이터로 먼저 확인하는 편이 안전합니다.
정규표현식은 어디에 활용할 수 있을까?
노션 데이터베이스에서는 생각보다 활용할 곳이 많습니다.
상품코드에서 숫자만 추출하거나, 이메일 주소를 정리하거나, URL에서 특정 문자를 제거하거나, 외부 API에서 들어온 문자열을 일정한 형식으로 맞추는 작업 등이 대표적입니다.
특히 Make나 API를 이용해 외부 데이터를 노션으로 가져오는 경우 원본 데이터의 형식이 항상 원하는 모습으로 들어오지는 않습니다.
이때 Formula를 이용해 표시용 데이터를 한 번 더 정리하면 원본 속성을 건드리지 않고 필요한 값을 만들 수 있다는 장점이 있습니다.
원본 데이터는 그대로 두는 것이 좋습니다
제가 이런 작업을 할 때 중요하게 보는 부분입니다.
외부에서 가져온 원본 데이터를 바로 수정하기보다,
원본 데이터 → Formula 정제 → 실제 사용
구조로 만드는 편이 좋습니다.
정규표현식이 잘못됐거나 나중에 데이터 처리 기준이 바뀌더라도 원본이 남아 있기 때문입니다.
Formula만 수정하면 다시 원하는 형태로 데이터를 만들 수 있습니다.
마무리
노션 Formula 2.0에서 정규표현식을 사용할 때 처음부터 복잡한 수식을 만들 필요는 없습니다.
match()로 필요한 패턴을 찾고 replaceAll()로 불필요한 부분을 정리하는 기본적인 방법부터 익히는 것이 좋습니다.
특히 실제 데이터베이스에서는 정상적인 데이터만 테스트하지 말고 빈 값, 예상과 다른 형식, 특수문자가 포함된 값까지 함께 테스트해보세요.
수식을 짧게 만드는 것보다 예상하지 못한 데이터가 들어왔을 때도 오류 없이 처리되는 구조를 만드는 것이 더 중요합니다.




댓글 0
첫 댓글을 남겨보세요.