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

내에서 정규식을 사용자 정의할 수 있습니다. JMP.
기본 제공 표현식이 유용하지만 데이터 정리에는 데이터 세트에 더 적합한 사용자 정의 표현식이 필요할 수 있습니다. 텍스트 문자열에서 모든 숫자를 제거하는 것과 같은 간단한 예를 살펴보겠습니다. 정규식 '\d+'가 이 작업을 수행합니다. 이 식은 '\d'를 사용합니다. 메타문자 모든 숫자(0-9) 및 '+' 양화사 하나 이상의 숫자가 일치해야 함을 나타냅니다. 이 정규식을 "I have 5 apples and 10 oranges" 문자열에 적용하면 숫자 "5"와 "10"이 식별됩니다. 이 숫자를 빈 문자열로 바꾸면 현재 모든 숫자의 데이터를 효과적으로 정리할 수 있습니다.
를 분석해보자 HTML 링크 그래버 더 복잡한 예를 설명하기 위해. JMP에 내장된 이 정규식은 다음과 같습니다.
<A>]*?)\3[^>]*)|(\s*[a-z]+\s*=\s*('|")([^>]*?)\6))*\s*></A>
위 식의 각 중요한 부분은 아래 표에 요약되어 있습니다.
| '<아' |
이 메타문자는 HTML에서 하이퍼링크를 나타내는 여는 앵커 태그를 검색합니다. |
| 'href\s*=\s*('|")' |
이 섹션은 속성 "href"와 등호, 선택적 공백, 작은따옴표(') 또는 큰따옴표(")를 찾습니다. 역참조에서 여는 인용문을 캡처합니다. |
| '([^>]*?)' |
닫는 꺾쇠 괄호(>)가 아닌 모든 문자와 일치합니다. 가장 중요한 것은 이 표현식의 주요 목적인 URL을 캡처한다는 것입니다. 이 섹션은 다음과 유사합니다. 형식 지정자 C 프로그래밍에서. |
| '(\s*[az]+\s*=\s*('|")([^>]*?)\6)' |
이 패턴은 앵커 태그 내의 모든 추가 속성과 일치합니다. 속성 이름, 등호, 선택적 공백, 속성 값(따옴표 내부)을 캡처하고 닫는 따옴표가 여는 따옴표와 일치하는지 확인합니다. |
(보다 정규식 편집기(jmp.com)에서 Regex 사용자 지정 자세한 내용은)
이러한 특성과 패턴이 복잡해 보일 수 있지만 각 플래그가 나타내는 내용을 배우고 이해하는 데 사용할 수 있는 많은 문서와 리소스가 있습니다.
정규식의 적용
이제 우리는 regex가 무엇인지, 무엇을 할 수 있는지 정확히 알았으니 어디에서 가장 유용할까요?
하나의 응용 프로그램으로 범위를 좁히기는 어렵지만 JMP 사용자 커뮤니티의 토론 섹션에서 데이터를 다루는 텍스트 분석 프로젝트를 위해 수행한 몇 가지 데이터 필터링의 예를 안내해 드리겠습니다. 이 프로젝트의 궁극적인 목표는 사용자 커뮤니티에서 토론에 게시된 가장 일반적으로 사용되는 용어와 구문을 찾는 것이었습니다.
아래에 표시된 것은 그중 하나의 예입니다. 4만 8천 이상 토론 의견. 참고 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가지 주제 분석
제공된 다섯 가지 주제는 사용자가 질문할 수 있는 다양한 질문 범주로 일반화할 수 있습니다.
- 주제 #1: 실험계획법(DOE)
- 주제 #2: 예측 모델링 및 기계 학습
- 주제 #3: 학습 답변
- 주제 #4: 데이터 형식화 및 분석
- 주제 #5: 프로그래밍 및 스크립팅
정규식 열 텍스트 일치
정규식은 텍스트 탐색 창 내에서의 적용에만 국한되지 않습니다. 문자열 수식을 사용하여 새 데이터 열을 만들 때 액세스할 수도 있습니다. 이에 액세스하려면 Cols -> Utilities -> New Column by Text Matching을 확인하십시오.

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

동일한 프로세스가 텍스트 탐색기 창 외부에 표시됩니다.
마지막 생각들
정규식은 데이터 탐색 영역에서 없어서는 안 될 도구입니다. 텍스트 문자열을 원하는 출력으로 조작하고 일치시키는 다목적 솔루션을 제공합니다. 정규식을 사용하면 데이터의 잠재력을 최대한 활용할 수 있습니다.
Regex에 대한 자세한 내용은 다음을 참조하세요.
정규식 편집기(jmp.com)에서 Regex 사용자 지정
정규 표현식의 수량자 | 마이크로소프트 런
정규식 참조(regular-expressions.info)
정규식 함수(jmp.com)
JMP 도움말