ExtractText 2025.10.9.21 — 정규식 텍스트 추출 프로세서

ExtractText 2025.10.9.21 — 정규식 텍스트 추출 프로세서

ExtractText 프로세서는 FlowFile의 내용에 대해 하나 이상의 정규식을 평가하고, 그 결과를 FlowFile 속성에 할당해요. 정규식은 사용자 정의 속성을 추가해 입력하며, 속성 이름은 결과가 들어갈 속성 이름과 매핑돼요.

출처: Snowflake 문서

본문

기능 — 일반 공개 (Generally Available)

Openflow Snowflake 배포는 AWS, Azure, GCP의 상용 리전에서 모든 계정에 제공돼요.

Openflow BYOC 배포는 AWS의 상용 리전에서 모든 계정에 제공돼요.

Bundle

org.apache.nifi | nifi-standard-nar

Description

FlowFile의 내용에 대해 하나 이상의 정규식을 평가해요. 그 정규식의 결과는 FlowFile 속성에 할당돼요. 정규식은 사용자 정의 속성을 추가해 입력하며, 속성의 이름은 결과가 배치될 속성 이름과 매핑돼요. 속성은 명명된 캡처 그룹(named capture group)의 활성화 여부에 따라 다르게 생성돼요. 명명된 캡처 그룹이 활성화되지 않은 경우: 발견된 첫 번째 캡처 그룹이 해당 속성 이름에 배치돼요. 하지만 매칭되는 문자열 시퀀스 자체를 포함한 모든 캡처 그룹도 인덱스 값과 함께 해당 속성 이름에 제공되는데, 선택 사항이고 매칭되지 않는 캡처 그룹은 예외예요. 예를 들어 속성 이름이 "regex"이고 표현식이 abc(def)?(g)라면 "def"가 매칭된 경우 값이 "def"인 "regex.1" 속성이 추가돼요. "def"가 매칭되지 않으면 "regex.1"이라는 속성은 추가되지 않지만, 값이 "g"인 "regex.2" 속성은 매칭 여부와 관계없이 추가돼요. 명명된 캡처 그룹이 활성화된 경우: 발견된 각 명명된 캡처 그룹이 제공된 이름으로 속성에 배치돼요. 활성화되면 매칭되는 문자열 시퀀스 자체가 속성 이름에 배치돼요. 여러 매칭이 활성화되면 첫 번째 매칭 세트 뒤에 인덱스가 적용돼요. 선택 사항이고 매칭되지 않는 캡처 그룹은 예외예요. 예를 들어 속성 이름이 "regex"이고 표현식이 abc(?<NAMED>def)?(?<NAMED-TWO>g)라면 "def"가 매칭된 경우 값이 "def"인 "regex.NAMED" 속성이 추가돼요. "g"가 매칭되면 매칭 여부와 관계없이 값이 "g"인 "regex.NAMED-TWO" 속성이 추가돼요. 속성 값은 하나 이상의 캡처 그룹을 가진 유효한 정규식이어야 해요. 명명된 캡처 그룹이 활성화되면 모든 캡처 그룹이 명명되어야 해요. 그렇지 않으면 프로세서 구성이 검증에 실패해요. 정규식이 두 번 이상 매칭되면, 반복 캡처 그룹을 활성화하는 속성이 true로 설정되지 않는 한 첫 번째 매칭만 사용돼요. 제공된 정규식 중 하나라도 매칭되면 FlowFile은 'matched'로 라우팅돼요. 제공된 정규식이 하나도 매칭되지 않으면 FlowFile은 'unmatched'로 라우팅되고 FlowFile에 어떤 속성도 적용되지 않아요.

Tags

Regular Expression, Text, evaluate, extract, regex

Input Requirement

REQUIRED

Supports Sensitive Dynamic Properties

false

Properties

Property Description
Character Set 파일이 인코딩된 문자 집합이에요
Enable Canonical Equivalence 두 문자의 정식 분해(canonical decomposition)가 완전히 일치할 때만 매칭됨을 나타내요
Enable Case-insensitive Matching 대소문자가 달라도 두 문자가 매칭됨을 나타내요. 내장 플래그 (?i)로도 지정할 수 있어요
Enable DOTALL Mode '.' 표현식이 줄 종결자(line terminator)를 포함한 모든 문자와 매칭되어야 함을 나타내요. 내장 플래그 (?s)로도 지정할 수 있어요
Enable Literal Parsing of the Pattern 메타문자와 이스케이프 문자에 특별한 의미를 부여하지 않아야 함을 나타내요
Enable Multiline Mode '^'와 '$'가 전체 입력의 시작과 끝뿐 아니라 줄 종결자 직후와 직전, 또는 시퀀스 끝에서도 매칭되어야 함을 나타내요. 내장 플래그 (?m)로도 지정할 수 있어요
Enable Unicode Predefined Character Classes Unicode Technical Standard #18: Unicode Regular Expression Annex C: Compatibility Properties에 대한 준수를 지정해요. 내장 플래그 (?U)로도 지정할 수 있어요
Enable Unicode-aware Case Folding 'Enable Case-insensitive Matching'과 함께 사용할 때 Unicode 표준과 일관된 방식으로 매칭해요. 내장 플래그 (?u)로도 지정할 수 있어요
Enable Unix Lines Mode '^'와 '$'의 동작에서 줄 종결자(line terminator)만 인식함을 나타내요. 내장 플래그 (?d)로도 지정할 수 있어요
Enable named group support true로 설정하면 정규식에 명명된 그룹이 있을 때 그룹 인덱스 대신 그룹 이름이 속성 이름에 사용돼요. 모든 캡처 그룹은 명명되어야 하며, (캡처 그룹 0을 제외한) 그룹 수가 명명된 그룹 수와 같지 않으면 검증이 실패해요
Enable repeating capture group true로 설정하면 캡처 그룹과 매칭되는 모든 문자열이 추출돼요. 그렇지 않으면 정규식이 두 번 이상 매칭돼도 첫 번째 매칭만 추출돼요
Include Capture Group 0 Capture Group 0을 속성으로 포함할지 여부를 나타내요. Capture Group 0은 정규식 매칭의 전체를 나타내며, 일반적으로 사용되지 않고 길이가 상당할 수 있어요
Maximum Buffer Size 정규식을 적용하기 위해 (FlowFile당) 버퍼링할 최대 데이터 양을 지정해요. 지정된 최대값보다 큰 FlowFile은 완전히 평가되지 않아요
Maximum Capture Group Length 주어진 캡처 그룹 값이 가질 수 있는 최대 문자 수를 지정해요. 최대값을 넘는 문자는 잘려요
Permit Whitespace and Comments in Pattern 이 모드에서는 공백이 무시되고 #으로 시작하는 내장 주석은 줄 끝까지 무시돼요. 내장 플래그 (?x)로도 지정할 수 있어요

Relationships

Name Description
matched 정규식이 성공적으로 평가되고 그 결과 FlowFile이 수정되면 FlowFile이 이 관계로 라우팅돼요
unmatched 제공된 정규식이 FlowFile 내용과 매칭되지 않으면 FlowFile이 이 관계로 라우팅돼요

더 알아보기 (Learn more)