이것을 상상해 보십시오: 당신은 원시 데이터의 길들여지지 않은 황무지 깊숙한 곳으로 모험을 떠나는 용감한 데이터 탐색기입니다. 믿을 수 있는 스프레드시트와 커피 한 잔으로 무장하여 의미 있는 통찰력을 추출하기 위한 탐색을 시작합니다. 그러나 아쉽게도 당신이 마주하게 되는 것은 일관되지 않은 서식, 비밀스러운 기호, 고유한 생명력을 갖고 있는 것처럼 보이는 오타 등의 정글입니다. 용감한 데이터 랭글러여, 두려워하지 마십시오. 이 혼란스러운 영역에서 비밀 무기가 기다리고 있습니다: 정규식 , 데이터 정리의 슈퍼히어로 망토.
정규식이란 무엇입니까?
기본적으로 regex 로 알려진 정규식은 검색 패턴을 정의하는 강력한 문자 시퀀스입니다. 이는 특정 패턴이나 규칙 에 따라 텍스트 문자열을 조작하고 일치시키기 위해 다양한 프로그래밍 언어 및 텍스트 편집기에서 사용되는 다목적 도구입니다. 정규식을 사용하면 복잡한 검색 패턴을 간결하게 표현하여 텍스트 데이터의 특정 부분을 더 쉽게 찾고, 추출하고, 수정할 수 있습니다. 문자, 메타 문자 및 수량자를 결합하면 더 큰 텍스트 본문 내에서 특정 시퀀스, 문자 또는 훨씬 더 복잡한 구조와 일치하는 정규식 패턴을 만들 수 있습니다. 광범위한 응용 프로그램을 통해 정규식은 데이터 정리, 텍스트 처리 및 패턴 인식 작업을 위한 귀중한 리소스가 되었습니다.
JMP의 정규식
JMP 내에서 정규식은 텍스트 탐색기 > 구문 분석 옵션 > 정규식 사용자 정의에 있는 빨간색 삼각형을 통해 액세스하고 사용자 정의합니다. HTML Link Grabber 및 Numbers 형광펜과 같은 여러 정규식을 쉽게 사용할 수 있습니다.

다음에서 정규식을 사용자 정의할 수 있습니다.JMP.
기본 제공 표현식이 유용하지만 데이터 정리에는 데이터 세트에 더 잘 맞는 사용자 정의 표현식이 더 많이 필요할 수 있습니다. 텍스트 문자열에서 모든 숫자를 제거하는 것과 같은 간단한 예를 살펴보겠습니다. 정규식 "\d+"가 이 작업을 수행합니다. 이 표현식은 "\d" 메타 문자를 사용하여 모든 숫자(0-9)와 일치하고 "+" 수량자를 사용하여 하나 이상의 숫자가 일치해야 함을 나타냅니다. 이 정규식을 문자열 "I have 5 apples and 10 oranges"에 적용하면 숫자 "5"와 "10"이 식별됩니다. 이 숫자를 빈 문자열로 바꾸면 현재 모든 숫자의 데이터를 효과적으로 정리할 수 있습니다.
좀 더 복잡한 예를 설명하기 위해 HTML Link Grabber를 분석해 보겠습니다. JMP에 내장된 정규식은 다음과 같습니다.
<A>]*?)\3[^>]*)|(\s*[a-z]+\s*=\s*('|")([^>]*?)\6))*\s*></A>
위 식의 각 중요한 부분은 아래 표에 요약되어 있습니다.
| < d>
| 이 메타문자는 HTML에서 하이퍼링크를 나타내는 여는 앵커 태그를 검색합니다. |
| href\s*=\s*('|") |
이 섹션은 "href" 속성과 등호, 선택적 공백, 작은따옴표(') 또는 큰따옴표(")를 일치시킵니다. 역참조에서 여는 따옴표를 캡처합니다. |
| ([^>]*?) |
이는 닫는 꺾쇠괄호(>)가 아닌 모든 문자와 일치합니다. 가장 중요한 것은 이 표현의 주요 목적인 URL을 캡처한다는 것입니다. 이 섹션은 C 프로그래밍의 형식 지정자 와 유사합니다. |
| (\s*[az]+\s*=\s*('|")([^>]*?)\6) |
이 패턴은 앵커 태그 내의 추가 속성과 일치합니다. 속성 이름, 등호, 선택적 공백, 속성 값(따옴표 안)을 캡처하고 닫는 따옴표가 시작 따옴표와 일치하는지 확인합니다. |
(자세한 내용은 정규식 편집기에서 정규식 사용자 정의(jmp.com)를 참조하세요.)
이러한 속성과 패턴은 복잡해 보일 수 있지만 각 플래그가 나타내는 내용을 배우고 이해하는 데 사용할 수 있는 문서와 리소스가 많이 있습니다.
정규식 적용
이제 정규 표현식이 무엇인지, 무엇을 할 수 있는지 정확히 알았으니 정규 표현식이 가장 유용한 곳은 어디일까요?
글쎄, 단 하나의 응용 프로그램으로 범위를 좁히기는 어렵습니다. 하지만 JMP 사용자 커뮤니티 토론 섹션의 데이터를 다루는 텍스트 분석 프로젝트에서 제가 수행한 몇 가지 데이터 필터링의 예를 살펴보겠습니다. 이 프로젝트의 궁극적인 목표는 사용자 커뮤니티의 토론에 게시된 가장 일반적으로 사용되는 용어와 문구를 찾는 것이었습니다.
아래에는 48,000개가 넘는 토론 댓글 중 단 하나의 예가 나와 있습니다. HTML 형식 과 JSL 스크립팅 으로 인해 원래 주석에 사용된 어휘를 파악하기가 매우 어렵습니다.

정규식 정리 전의 데이터 샘플입니다.
이러한 용어를 정리하고 수동으로 서식을 지정하면 완료하는 데 몇 달 또는 몇 년이 걸릴 수 있지만 몇 가지 정규식만 사용하면 정리가 즉시 완료될 수 있습니다.
먼저 토론 내에서 JSL 스크립팅 언어 콘텐츠를 제거하고 싶었습니다. 이를 달성하기 위해 다음 정규식을 사용했습니다.
<CODE class=" language-jsl">[\s\S]*?<\/CODE>|
|((([€¥₩£\$]|r\$)\s{0,2}[\.,]?[0-9][\.,0-9]*)|([\.,]?[0-9][\.,0-9]*\s{0,2}([€¥₩£\$]|r\$)))
다음으로 데이터에서 HTML 및 CSS 형식 태그를 제거하고 싶었습니다.
<[^>]*>
마지막으로 숫자, 소수, 숫자가 포함된 단어를 제거하고 싶었습니다.
\d+(\.\d+)?|\.\d+
동일한 원본 샘플 메시지를 살펴보면 각 표현식이 지정된 매개변수를 필터링하는 방법을 아래에서 확인할 수 있습니다.

필터링된 데이터. 필터링되지 않은 단어는 노란색으로 강조 표시됩니다.
결과 탐색
사용자 정의 표현식 필터링을 마친 후 결과는 어떻게 변경됩니까? 원시 및 필터링되지 않은 데이터 세트와 정규식 정리된 세트에 대한 단어 클라우드를 나란히 비교해 보겠습니다.
이전 (정규식 없음)
|
신규 (정규식 사용)
|
|
|
정규식을 사용하기 전에는 데이터가 HTML 형식, JSL 형식 및 전혀 관련 없는 콘텐츠로 채워집니다. 내 분석의 목적상 이 데이터는 전혀 관련이 없습니다. 정규식을 사용한 후에는 데이터가 분석에 훨씬 더 유용하며 추가 작업을 통해 매우 흥미로운 결과를 제공할 수 있습니다.
정리된 데이터에 대한 주제 분석을 수행하면 사용자 커뮤니티 내에서 가장 일반적으로 답변되는 주제에 대해 다음과 같은 결과가 제공됩니다.

토론자료 5개 주제 분석
제공된 5가지 주제는 사용자가 묻는 질문의 다양한 범주로 일반화될 수 있습니다.
- 주제 #1: 실험 계획(DOE)
- 주제 #2: 예측 모델링 및 기계 학습
- 주제 #3: 교육적 답변
- 주제 #4: 데이터 형식화 및 분석
- 주제 #5: 프로그래밍 및 스크립팅
정규식 열 텍스트 일치
정규식은 텍스트 탐색 창 내에서의 적용에만 국한되지 않습니다. 문자열 수식을 사용하여 새 데이터 열을 만들 때 해당 항목에 액세스할 수도 있습니다. 이에 액세스하려면 Cols -> Utilities -> Text Matching을 통한 새 열을 확인하세요.

Regex는 JMP 파일의 모든 텍스트 열에서 사용할 수 있습니다.
"텍스트 일치로 새 열"을 선택하면 텍스트 탐색기와 동일한 정규식 편집기 창이 열립니다. 전체 데이터 큐레이션 프로세스는 완전히 동일하지만 필터링된 텍스트는 이제 아래 이미지와 같이 자동으로 새 열 형식으로 지정됩니다.

동일한 프로세스가 텍스트 탐색기 창 외부에 표시됩니다.
마지막 생각들
정규식은 데이터 탐색 영역에서 없어서는 안 될 도구입니다. 텍스트 문자열을 원하는 출력으로 조작하고 일치시키기 위한 다양한 솔루션을 제공합니다. 정규식을 사용하면 데이터의 잠재력을 최대한 활용할 수 있습니다.
정규식에 대한 자세한 내용은 다음을 참조하세요.
Customize Regex in the Regular Expression Editor (jmp.com)
정규식의 수량자 | 마이크로소프트 런
정규식 참조(regular-expressions.info)
정규식 함수(jmp.com)
JMP 도움말
블로그 게시물에 감사드립니다!
내가 가장 좋아하는 사이트 중 하나는 regex101.com입니다. 정규 표현식을 빌드하고 테스트하기에 좋은 곳입니다. 이 도구를 사용하여 많은 것을 배웠습니다.
브래드, 정말 훌륭하고 유익한 게시물입니다! 지난 주에 Regex에 대해 배웠는데 이것은 매우 유용한 소개였습니다. 다른 모든 사람들이 정규 표현식에 흥미를 가질 수 있기를 바랍니다.