Apache NiFi 2.x处理器:ExtractText 2.3.0
包
org.apache.nifi | nifi-standard-nar
描述
根据FlowFile的内容评估一个或多个正则表达式。这些正则表达式的结果会被赋值给FlowFile的属性。通过添加用户定义的属性来输入正则表达式,属性的名称会映射到存放结果的属性名。根据是否启用命名捕获组,生成属性的方式有所不同。
- 未启用命名捕获组时:如果找到第一个捕获组,它会被放入该属性名中。除此之外,所有捕获组,包括匹配的字符串序列本身,也会以带有索引值的形式在该属性名中提供,但可选且未匹配的捕获组除外。例如,给定属性名 “regex” 和表达式 “abc(def)?(g)”,如果 “def” 匹配,我们会添加一个属性 “regex.1”,其值为 “def”;如果 “def” 未匹配,则不会添加名为 “regex.1” 的属性,但无论如何都会添加一个名为 “regex.2” 且值为 “g” 的属性。
- 启用命名捕获组时:每个找到的命名捕获组都会以其指定的名称放入属性名中。启用该功能后,匹配的字符串序列本身也会放入属性名中。如果启用了多个匹配项,在第一组匹配之后会应用索引。同样,可选且未匹配的捕获组是个例外。例如,给定属性名 “regex” 和表达式 “abc(?def)? (?g)”,如果 “def” 匹配,我们会添加一个属性 “regex.NAMED”,其值为 “def”;如果 “g” 匹配,无论如何都会添加一个属性 “regex.NAMED-TWO”,其值为 “g”。属性的值必须是一个有效的正则表达式,且包含一个或多个捕获组。如果启用了命名捕获组,所有捕获组都必须命名,否则处理器配置将无法通过验证。如果正则表达式匹配多次,除非将启用重复捕获组的属性设置为true,否则只会使用第一次匹配的结果。如果任何提供的正则表达式匹配成功,FlowFile将被路由到 “matched”;如果没有匹配成功的正则表达式,FlowFile将被路由到 “unmatched”,并且不会给该FlowFile应用任何属性。
标签
Regular Expression、Text、evaluate、extract、regex
输入要求
必需
是否支持敏感动态属性
否
ExtractText 2.3.0的更多详细信息
ExtractText使用信息
Extract Text处理器根据是否启用命名捕获组会提供不同的结果。
示例
下面是一个示例,用以说明这一点。
- 数据:纯文本 “foo\r\nbar1\r\nbar2\r\nbar3\r\nhello\r\nworld\r\n”
- 未启用命名捕获组时
属性名 | 属性值 |
regex.result1 | (?s)(.*) |
regex.result2 | (?s).(bar1). |
regex.result3 | (?s).?(bar\d). |
regex.result4 | (?s).?(?:bar\d).?(bar\d).?(bar3). |
regex.result5 | (?s).(bar\d). |
regex.result6 | (?s)^(.*)$ |
regex.result7 | (?s)(XXX) |
属性名 | 属性值 |
regex.result1 | foo\r\nbar1\r\nbar2\r\nbar3\r\nhello\r\nworld\r\n |
regex.result2 | bar1 |
regex.result3 | bar1 |
regex.result4 | bar2 |
regex.result4.0 | foo\r\nbar1\r\nbar2\r\nbar3\r\nhello\r\nworld\r\n |
regex.result4.1 | bar2 |
regex.result4.2 | bar3 |
regex.result5 | bar3 |
regex.result6 | foo\r\nbar1\r\nbar2\r\nbar3\r\nhello\r\nworld\r\n |
regex.result7 |
- 配置
- 结果
- 启用命名捕获组时
属性名 | 属性值 |
Enable named group support | True |
regex.result1 | (?s)(?.* |
regex.result2 | (?s).(?bar1). |
regex.result3 | (?s).?(?bar\d). |
regex.result4 | (?s).?(?:bar\d).?(?bar\d).?(?bar3). |
regex.result5 | (?s).(?bar\d). |
regex.result6 | (?s)^(?.*)$ |
regex.result7 | (?s)(?XXX) |
属性名 | 属性值 |
regex.result1 | foo\r\nbar1\r\nbar2\r\nbar3\r\nhello\r\nworld\r\n |
regex.result2.BAR1 | bar1 |
regex.result3.BAR1 | bar1 |
regex.result4.BAR2 | bar2 |
regex.result4.BAR2 | bar2 |
regex.result4.BAR3 | bar3 |
regex.result5.BAR3 | bar3 |
regex.result6.ALL | foo\r\nbar1\r\nbar2\r\nbar3\r\nhello\r\nworld\r\n |
regex.result7.MISS |
- 配置
- 结果
属性
- Character Set:文件编码所用的字符集。
- 显示名称:Character Set
- 描述:文件编码所用的字符集
- API名称:Character Set
- 默认值:UTF-8
- 表达式语言作用域:不支持
- 是否敏感:否
- 是否必需:是
- Enable Canonical Equivalence:表示只有当两个字符的完整规范分解相匹配时,它们才匹配。
- 显示名称:Enable Canonical Equivalence
- 描述:表示只有当两个字符的完整规范分解相匹配时,它们才匹配
- API名称:Enable Canonical Equivalence
- 默认值:false
- 允许值:true、false
- 表达式语言作用域:不支持
- 是否敏感:否
- 是否必需:是
- Enable Case-insensitive Matching:表示即使两个字符的大小写不同,它们也匹配。也可以通过嵌入标志 (?i) 指定。
- 显示名称:Enable Case-insensitive Matching
- 描述:表示即使两个字符的大小写不同,它们也匹配。也可以通过嵌入标志 (?i) 指定
- API名称:Enable Case-insensitive Matching
- 默认值:false
- 允许值:true、false
- 表达式语言作用域:不支持
- 是否敏感:否
- 是否必需:是
- Enable DOTALL Mode:表示表达式 “.” 应匹配任何字符,包括行终止符。也可以通过嵌入标志 (?s) 指定。
- 显示名称:Enable DOTALL Mode
- 描述:表示表达式 “.” 应匹配任何字符,包括行终止符。也可以通过嵌入标志 (?s) 指定
- API名称:Enable DOTALL Mode
- 默认值:false
- 允许值:true、false
- 表达式语言作用域:不支持
- 是否敏感:否
- 是否必需:是
- Enable Literal Parsing of the Pattern:表示元字符和转义字符不应具有特殊含义。
- 显示名称:Enable Literal Parsing of the Pattern
- 描述:表示元字符和转义字符不应具有特殊含义
- API名称:Enable Literal Parsing of the Pattern
- 默认值:false
- 允许值:true、false
- 表达式语言作用域:不支持
- 是否敏感:否
- 是否必需:是
- Enable Multiline Mode:表示 “^” 和 “$” 应在紧接行终止符或序列结尾之后、之前匹配,而不是仅在整个输入的开头或结尾匹配。也可以通过嵌入标志 (?m) 指定。
- 显示名称:Enable Multiline Mode
- 描述:表示 “^” 和 “$” 应在紧接行终止符或序列结尾之后、之前匹配,而不是仅在整个输入的开头或结尾匹配。也可以通过嵌入标志 (?m) 指定
- API名称:Enable Multiline Mode
- 默认值:false
- 允许值:true、false
- 表达式语言作用域:不支持
- 是否敏感:否
- 是否必需:是
- Enable named group support:如果设置为true,当正则表达式中存在命名组时,组的名称将用于属性名,而不是组索引。所有捕获组都必须命名,如果组的数量(不包括捕获组0)与命名组的数量不相等,验证将失败。
- 显示名称:Enable named group support
- 描述:如果设置为true,当正则表达式中存在命名组时,组的名称将用于属性名,而不是组索引。所有捕获组都必须命名,如果组的数量(不包括捕获组0)与命名组的数量不相等,验证将失败
- API名称:Enable named group support
- 默认值:false
- 允许值:true、false
- 表达式语言作用域:不支持
- 是否敏感:否
- 是否必需:否
- Enable repeating capture group:如果设置为true,将提取与捕获组匹配的每个字符串。否则,如果正则表达式匹配多次,只会提取第一次匹配的结果。
- 显示名称:Enable repeating capture group
- 描述:如果设置为true,将提取与捕获组匹配的每个字符串。否则,如果正则表达式匹配多次,只会提取第一次匹配的结果
- API名称:Enable repeating capture group
- 默认值:false
- 允许值:true、false
- 表达式语言作用域:不支持
- 是否敏感:否
- 是否必需:是
- Enable Unicode Predefined Character Classes:指定符合Unicode技术标准#18:Unicode正则表达式附录C:兼容性属性。也可以通过嵌入标志 (?U) 指定。
- 显示名称:Enable Unicode Predefined Character Classes
- 描述:指定符合Unicode技术标准#18:Unicode正则表达式附录C:兼容性属性。也可以通过嵌入标志 (?U) 指定
- API名称:Enable Unicode Predefined Character Classes
- 默认值:false
- 允许值:true、false
- 表达式语言作用域:不支持
- 是否敏感:否
- 是否必需:是
- Enable Unicode-aware Case Folding:与 “Enable Case-insensitive Matching” 一起使用时,匹配方式符合Unicode标准。也可以通过嵌入标志 (?u) 指定。
- 显示名称:Enable Unicode-aware Case Folding
- 描述:与 “Enable Case-insensitive Matching” 一起使用时,匹配方式符合Unicode标准。也可以通过嵌入标志 (?u) 指定
- API名称:Enable Unicode-aware Case Folding
- 默认值:false
- 允许值:true、false
- 表达式语言作用域:不支持
- 是否敏感:否
- 是否必需:是
- Enable Unix Lines Mode:表示在 “.”、“^” 和 “$” 的行为中,仅识别 “\n” 行终止符。也可以通过嵌入标志 (?d) 指定。
- 显示名称:Enable Unix Lines Mode
- 描述:表示在 “.”、“^” 和 “$” 的行为中,仅识别 “\n” 行终止符。也可以通过嵌入标志 (?d) 指定
- API名称:Enable Unix Lines Mode
- 默认值:false
- 允许值:true、false
- 表达式语言作用域:不支持
- 是否敏感:否
- 是否必需:是
- Include Capture Group 0:表示应将捕获组0作为一个属性包含在内。捕获组0代表整个正则表达式的匹配内容,通常不使用,且可能长度很长。
- 显示名称:Include Capture Group 0
- 描述:表示应将捕获组0作为一个属性包含在内。捕获组0代表整个正则表达式的匹配内容,通常不使用,且可能长度很长
- API名称:Include Capture Group 0
- 默认值:true
- 允许值:true、false
- 表达式语言作用域:不支持
- 是否敏感:否
- 是否必需:是
- Maximum Buffer Size:指定为应用正则表达式而缓冲的数据的最大量(每个FlowFile)。大于指定最大值的FlowFile将不会被完全评估。
- 显示名称:Maximum Buffer Size
- 描述:指定为应用正则表达式而缓冲的数据的最大量(每个FlowFile)。大于指定最大值的FlowFile将不会被完全评估
- API名称:Maximum Buffer Size
- 默认值:1 MB
- 表达式语言作用域:不支持
- 是否敏感:否
- 是否必需:是
- Maximum Capture Group Length:指定给定捕获组值可以包含的最大字符数。超出最大值的任何字符都将被截断。
- 显示名称:Maximum Capture Group Length
- 描述:指定给定捕获组值可以包含的最大字符数。超出最大值的任何字符都将被截断
- API名称:Maximum Capture Group Length
- 默认值:1024
- 表达式语言作用域:不支持
- 是否敏感:否
- 是否必需:否
- Permit Whitespace and Comments in Pattern:在此模式下,空白字符将被忽略,以 “#” 开头的嵌入式注释将被忽略,直到行尾。也可以通过嵌入标志 (?x) 指定。
- 显示名称:Permit Whitespace and Comments in Pattern
- 描述:在此模式下,空白字符将被忽略,以 “#” 开头的嵌入式注释将被忽略,直到行尾。也可以通过嵌入标志 (?x) 指定
- API名称:Permit Whitespace and Comments in Pattern
- 默认值:false
- 允许值:true、false
- 表达式语言作用域:不支持
- 是否敏感:否
- 是否必需:是
动态属性
- 名称:A FlowFile attribute
- 描述:如果找到第一个捕获组,它会被放入该属性名中。除此之外,所有捕获组,包括匹配的字符串序列本身,也会以带有索引值的形式在该属性名中提供。
- 值:A Regular Expression with one or more capturing group
- 表达式语言作用域:NONE
关系
名称 | 描述 |
unmatched | 当没有提供的正则表达式与FlowFile的内容匹配时,FlowFile会被路由到这个关系 |
matched | 当正则表达式评估成功且FlowFile因此被修改时,FlowFile会被路由到这个关系 |