ExtractText

文档中心 › 组件索引 › ExtractText

ExtractText Processor

类型全限定名:cn.org.acal.lynxus.processors.standard.ExtractText

所属 Bundle:cn.org.acal.lynxus:lynxus-standard-nar:2.11.8

描述

对 FlowFile 的内容计算一个或多个正则表达式。

标签

evaluateextractTextRegular Expressionregex

属性

下表中,加粗的属性为必填项;其余为可选项。表格同时标注默认值、是否支持表达式语言,以及是否为敏感属性(值会被加密)。

名称默认值可选值描述
Character SetUTF-8文件编码所用的字符集
Maximum Buffer Size1 MB指定为应用正则表达式而缓冲的最大数据量(每个 FlowFile)。大于指定最大值的 FlowFile 将不会被完全评估。
Maximum Capture Group Length1024指定给定捕获组值可以具有的最大字符数。 任何超出最大字符数的字符都将被截断。
Enable Canonical Equivalencefalse
  • true
  • false
指示两个字符仅当其完整规范分解匹配时才匹配。
Enable Case-insensitive Matchingfalse
  • true
  • false
指示两个字符即使大小写不同也匹配。也可以通过嵌入标志 (?i) 指定。
Permit Whitespace and Comments in Patternfalse
  • true
  • false
在此模式下,空白被忽略,以 # 开头的嵌入注释将被忽略直到行尾。也可以通过嵌入标志 (?x) 指定。
Enable DOTALL Modefalse
  • true
  • false
指示表达式 '.' 应匹配任何字符,包括行终止符。也可以通过嵌入标志 (?s) 指定。
Enable Literal Parsing of the Patternfalse
  • true
  • false
指示不应赋予元字符和转义字符特殊含义。
Enable Multiline Modefalse
  • true
  • false
指示 '^' 和 '$' 应在行终止符之前和之后以及序列结尾处匹配,而不是仅匹配整个输入的开头或结尾。也可以通过嵌入标志 (?m) 指定。
Enable Unicode-aware Case Foldingfalse
  • true
  • false
当与'启用不区分大小写匹配'一起使用时,以符合 Unicode 标准的方式进行匹配。也可以通过嵌入标志 (?u) 指定。
Enable Unicode Predefined Character Classesfalse
  • true
  • false
指定符合 Unicode 技术标准 #18:Unicode 正则表达式附录 C:兼容性属性。也可以通过嵌入标志 (?U) 指定。
Enable Unix Lines Modefalse
  • true
  • false
指示在 '.', '^' 和 '$' 的行为中仅识别 '\n' 行终止符。也可以通过嵌入标志 (?d) 指定。
Include Capture Group 0true
  • true
  • false
指示捕获组 0 应作为属性包含在内。捕获组 0 代表整个正则表达式匹配,通常不使用,并且可能具有相当大的长度。
Enable Repeating Capture Groupfalse
  • true
  • false
如果设置为 true,将提取匹配捕获组的每个字符串。否则,如果正则表达式匹配多次,则仅提取第一个匹配项。
Enable Named Groupsfalse
  • true
  • false
如果设置为 true,当正则表达式中存在命名组时,将使用组名称作为属性名称,而不是组索引。所有捕获组都必须命名,如果组数(不包括捕获组 0)与命名组数不相等,则验证将失败。

动态属性

动态属性允许用户自定义属性的名称与值。

名称值描述
一个 FlowFile 属性带有一个或多个捕获组的正则表达式第一个捕获组(如果找到)将被放置到该属性名中。但所有捕获组,包括匹配的字符串序列本身,也将通过提供的索引值在该属性名处提供。

关系 (Relationships)

名称描述自动终止
matched当成功评估正则表达式并因此修改 FlowFile 时,FlowFiles 将路由到此关系否
unmatched当没有提供的正则表达式与 FlowFile 的内容匹配时,FlowFiles 将路由到此关系否

状态管理

该组件不存储状态。

受限 (Restricted)

该组件不受限。

输入要求

该组件要求有传入连接。

详细说明

ExtractText

使用说明

Extract Text Processor 会根据是否启用命名捕获组(named capture groups)产生不同的结果。

示例

下面用一个对照示例来说明这一点。

数据

    `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)

结果

Attribute 名 Attribute 值
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)

结果

Attribute 名 Attribute 值
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