ReplaceText Processor
描述
通过在 FlowFile 内容中搜索某个文本值(通过正则表达式/regex 或字面值)并用其他替代值替换匹配的内容部分来更新 FlowFile 的内容。也可用于在 FlowFile 内容的前面或后面追加文本。
标签
使用场景
在 FlowFile 中每行的末尾追加文本
"Evaluation Mode" = "Line-by-Line"
"Replacement Strategy" = "Append"
"Replacement Value" 设置为应追加到行末尾的任意文本。
例如,要在每行末尾插入文本 `<fin>`,我们将 "Replacement Value" 设置为 `<fin>`。
我们还可以使用 Expression Language。因此,要在每行末尾插入文件名,我们将 "Replacement Value" 设置为 `${filename}`
在 FlowFile 中每行的开头添加文本
"Evaluation Mode" = "Line-by-Line"
"Replacement Strategy" = "Prepend"
"Replacement Value" 设置为应添加到行开头的任意文本。
例如,要在每行开头插入文本 `<start>`,我们将 "Replacement Value" 设置为 `<start>`。
我们还可以使用 Expression Language。因此,要在每行开头插入文件名,我们将 "Replacement Value" 设置为 `${filename}`
将 FlowFile 中每个出现的字面字符串替换为不同的值
"Evaluation Mode" = "Line-by-Line"
"Replacement Strategy" = "Literal Replace"
"Search Value" 设置为 FlowFile 中需要被替换的任意文本。
"Replacement Value" 设置为应替换当前文本的文本。
例如,要将单词 "spider" 替换为 "arachnid",我们将 "Search Value" 设置为 `spider`,并将 "Replacement Value" 设置为 `arachnid`。
转换 FlowFile 中每个出现的字面字符串
"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 的内容完全替换为特定文本
"Evaluation Mode" = "Entire text"
"Replacement Strategy" = "Always Replace"
"Replacement Value" 设置为应写入 FlowFile 的新文本。 此文本可以包含 Lynxus Expression Language 以引用一个或多个属性。
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| Replacement Strategy | Regex Replace |
| FlowFile 文本内容中如何替换以及替换内容的策略。 |
| Search Value | (?s)(^.*$) | 要在 FlowFile 内容中搜索的搜索值。 仅用于“文字替换”和“正则表达式替换”匹配策略 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Replacement Value | $1 | 使用'替换策略'插入的值。使用 \"正则替换\" 时支持正则表达式捕获组的反向引用,但引用正则表达式中不存在的捕获组的反向引用将被视为字面值。反向引用也可以使用表达式语言引用,如 '$1'、'$2' 等。必须包含单引号,因为这些变量不是 \"标准\" 属性名称(属性名称必须用引号括起来,除非它们只包含数字、字母和 _)。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Text to Prepend | | 要添加到 FlowFile 或每行开头的文本,具体取决于评估模式属性的配置值 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Text to Append | | 要附加到 FlowFile 末尾或每行的文本,具体取决于评估模式属性的配置值 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Character Set | UTF-8 | 文件编码所用的字符集 | |
| Maximum Buffer Size | 1 MB | 指定为应用替换而缓冲的最大数据量(按文件或按行,取决于评估模式)。如果选择了'整个文本'(在评估模式中)且 FlowFile 大于此值,FlowFile 将被路由到 'failure'。在'逐行'模式下,如果单行大于此值,FlowFile 将被路由到 'failure'。默认提供 1 MB 的值,主要用于'整个文本'模式。在'逐行'模式下,建议使用 8 KB 或 16 KB 等值。如果 <替换策略> 属性设置为以下之一,则忽略此值:追加、前置、始终替换 | |
| 评估模式 | Line-by-Line |
| 对每行单独运行 'Replacement Strategy'(逐行)或将整个文件缓冲到内存(全文)然后运行。 |
| 逐行评估模式 | All |
| 对 FlowFile 中的所有行、仅第一行(标题)、仅最后一行(页脚)、除第一行(标题)外或除最后一行(页脚)外,分别逐行运行 'Replacement Strategy'。 |
关系 (Relationships)
| 名称 | 描述 | 自动终止 |
|---|---|---|
failure | 无法更新的 FlowFiles 将路由到此关系 | 否 |
success | 已成功处理的 FlowFile 将路由到此关系。这包括已替换文本和未替换文本的 FlowFile。 | 否 |
状态管理
该组件不存储状态。
受限 (Restricted)
该组件不受限。
输入要求
该组件要求有传入连接。
系统资源考量
| 资源 | 描述 |
|---|---|
| MEMORY | An instance of this component can cause high usage of this system resource. Multiple instances or high concurrency settings may result a degradation of performance. |