Apache NiFi 2.x处理器:ExtractText 2.3.0

Apache NiFi 2.x处理器:ExtractText 2.3.0

精选文章moguli202025-03-24 17:03:3828A+A-

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会被路由到这个关系

点击这里复制本文地址 以上内容由莫古技术网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

莫古技术网 © All Rights Reserved.  滇ICP备2024046894号-2