ReplaceText

文档中心 › 组件索引 › ReplaceText

ReplaceText Processor

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

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

描述

通过在 FlowFile 内容中搜索某个文本值(通过正则表达式/regex 或字面值)并用其他替代值替换匹配的内容部分来更新 FlowFile 的内容。也可用于在 FlowFile 内容的前面或后面追加文本。

标签

TextRegular ExpressionUpdateChangeReplaceModifyRegex

使用场景

在 FlowFile 中每行的末尾追加文本

raw textappendline
"Evaluation Mode" = "Line-by-Line"
"Replacement Strategy" = "Append"

"Replacement Value" 设置为应追加到行末尾的任意文本。
例如,要在每行末尾插入文本 `<fin>`,我们将 "Replacement Value" 设置为 `<fin>`。
我们还可以使用 Expression Language。因此,要在每行末尾插入文件名,我们将 "Replacement Value" 设置为 `${filename}`

在 FlowFile 中每行的开头添加文本

raw textprependline
"Evaluation Mode" = "Line-by-Line"
"Replacement Strategy" = "Prepend"

"Replacement Value" 设置为应添加到行开头的任意文本。
例如,要在每行开头插入文本 `<start>`,我们将 "Replacement Value" 设置为 `<start>`。
我们还可以使用 Expression Language。因此,要在每行开头插入文件名,我们将 "Replacement Value" 设置为 `${filename}`

将 FlowFile 中每个出现的字面字符串替换为不同的值

replacestringtextliteral
"Evaluation Mode" = "Line-by-Line"
"Replacement Strategy" = "Literal Replace"
"Search Value" 设置为 FlowFile 中需要被替换的任意文本。
"Replacement Value" 设置为应替换当前文本的文本。

例如,要将单词 "spider" 替换为 "arachnid",我们将 "Search Value" 设置为 `spider`,并将 "Replacement Value" 设置为 `arachnid`。

转换 FlowFile 中每个出现的字面字符串

replacetransformraw text
"Evaluation Mode" = "Line-by-Line"
"Replacement Strategy" = "Regex Replace"
"Search Value" 设置为一个正则表达式,在捕获组中匹配应被转换的文本。
"Replacement Value" 设置为一个引用 `$1` 的 Lynxus Expression Language 表达式(用引号包裹以转义引用名)。

例如,如果我们想将 WOLF、TIGER 或 LION 的任何出现转换为小写,我们将使用 `(WOLF|TIGER|LION)` 作为 "Search Value" 并使用 `${'$1':toLower()}` 作为 "Replacement Value"。
如果我们想用某个标识符的哈希值替换该标识符,我们可以使用 `identifier: (.*)` 作为 "Search Value",并使用 `identifier: ${'$1':hash('sha256')}` 作为 "Replacement Value"

将 FlowFile 的内容完全替换为特定文本

replaceraw text
"Evaluation Mode" = "Entire text"
"Replacement Strategy" = "Always Replace"

"Replacement Value" 设置为应写入 FlowFile 的新文本。 此文本可以包含 Lynxus Expression Language 以引用一个或多个属性。

属性

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

名称默认值可选值描述
Replacement StrategyRegex Replace
  • Prepend — 在 FlowFile 开头或每行开头(取决于 Evaluation Mode)插入 Replacement Value。对于 "Line-by-Line" 求值模式,该值将被前置到每一行。类似地,对于 "First-Line"、"Last-Line"、"Except-Last-Line" 和 "Except-First-Line" 求值模式,该值将分别仅前置到页眉、仅页脚、除页眉外的所有行以及除页脚外的所有行。对于 "Entire Text" 求值模式,该值将被前置到整个文本。
  • Append — 在 FlowFile 末尾或每行末尾(取决于 Evaluation Mode)插入 Replacement Value。对于 "Line-by-Line" 求值模式,该值将被追加到每一行。类似地,对于 "First-Line"、"Last-Line"、"Except-Last-Line" 和 "Except-First-Line" 求值模式,该值将分别仅追加到页眉、仅页脚、除页眉外的所有行以及除页脚外的所有行。对于 "Entire Text" 求值模式,该值将被追加到整个文本。
  • Surround — 在 FlowFile 开头(或每行开头,取决于 Evaluation Mode 属性的配置)前置文本,同时在 FlowFile 末尾(或每行末尾,取决于 Evaluation Mode 属性的配置)追加文本
  • Regex Replace — 将 Search Value 解释为正则表达式,并用 Replacement Value 替换所有匹配项。Replacement Value 可以通过美元符号加捕获组编号(如 $1 或 $2)来引用 Search Value 中使用的捕获组。如果 Search Value 设为 .*,则所有内容都会被替换,甚至不会去求值该正则表达式。
  • Literal Replace — 查找 Search Value 的所有实例,并用 Replacement Value 替换匹配项。
  • Always Replace — 总是替换整行或 FlowFile 的全部内容(取决于 <Evaluation Mode> 属性的值),而不会去查找任何值。选择该策略时,<Search Value> 属性将被忽略。
  • Substitute Variables — 使用 FlowFile 属性替换变量引用(以 ${var} 形式指定),通过变量名查找替换值。选择该策略时,<Search Value> 和 <Replacement Value> 属性都将被忽略。
FlowFile 文本内容中如何替换以及替换内容的策略。
Search Value(?s)(^.*$)要在 FlowFile 内容中搜索的搜索值。 仅用于“文字替换”和“正则表达式替换”匹配策略
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Replacement Value$1使用'替换策略'插入的值。使用 \"正则替换\" 时支持正则表达式捕获组的反向引用,但引用正则表达式中不存在的捕获组的反向引用将被视为字面值。反向引用也可以使用表达式语言引用,如 '$1'、'$2' 等。必须包含单引号,因为这些变量不是 \"标准\" 属性名称(属性名称必须用引号括起来,除非它们只包含数字、字母和 _)。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Text to Prepend要添加到 FlowFile 或每行开头的文本,具体取决于评估模式属性的配置值
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Text to Append要附加到 FlowFile 末尾或每行的文本,具体取决于评估模式属性的配置值
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Character SetUTF-8文件编码所用的字符集
Maximum Buffer Size1 MB指定为应用替换而缓冲的最大数据量(按文件或按行,取决于评估模式)。如果选择了'整个文本'(在评估模式中)且 FlowFile 大于此值,FlowFile 将被路由到 'failure'。在'逐行'模式下,如果单行大于此值,FlowFile 将被路由到 'failure'。默认提供 1 MB 的值,主要用于'整个文本'模式。在'逐行'模式下,建议使用 8 KB 或 16 KB 等值。如果 <替换策略> 属性设置为以下之一,则忽略此值:追加、前置、始终替换
评估模式Line-by-Line
  • Line-by-Line
  • Entire text
对每行单独运行 'Replacement Strategy'(逐行)或将整个文件缓冲到内存(全文)然后运行。
逐行评估模式All
  • All
  • First-Line
  • Last-Line
  • Except-First-Line
  • Except-Last-Line
对 FlowFile 中的所有行、仅第一行(标题)、仅最后一行(页脚)、除第一行(标题)外或除最后一行(页脚)外,分别逐行运行 'Replacement Strategy'。

关系 (Relationships)

名称描述自动终止
failure无法更新的 FlowFiles 将路由到此关系否
success已成功处理的 FlowFile 将路由到此关系。这包括已替换文本和未替换文本的 FlowFile。否

状态管理

该组件不存储状态。

受限 (Restricted)

该组件不受限。

输入要求

该组件要求有传入连接。

系统资源考量

资源描述
MEMORYAn instance of this component can cause high usage of this system resource. Multiple instances or high concurrency settings may result a degradation of performance.