RouteText
描述:
根据一组用户自定义的文本数据规则路由数据流的输出。 输入的数据流中的每一行都需要与用户自定义的属性值进行比较匹配。 将文本与这些用户自定义的属性进行比较的机制由“匹配策略”来决定。 然后根据这些规则路由数据,并分别路由文本中的每一行。
标签:
attributes, routing, text, regexp, regex, Regular Expression, Expression Language, csv, filter, logs, delimited, 路由, 正则, 过滤
参数:
如下列表中,必填参数则标识为加粗. 其他未加粗参数,则表示为可选参数。表中同时提到参数默认值设置.
名字 | 默认值 | 允许值列表 | 描述 |
---|---|---|---|
路由策略 | 路由到每一个匹配到的属性值 | - 路由到每一个匹配到的属性值 - 满足所有条件时路由到“matched”连线 - 满足任一个条件时路由到“matched” | 根据路由策略和用户自定义属性来匹配每一行输入文本,并决定输出到哪个输出数据流 |
匹配策略 | - 乐观匹配 - 开头匹配 - 结尾匹配 - 包含 - 相同 - 正则表达式匹配 - 正则表达式包含 | 指定传入的文本行如何匹配用户自定义属性值。 | |
字符编码 | UTF-8 | 传入的文本行的字符集编码 | |
忽略头尾空白 | true | 在匹配时是否忽略文本行开头和结尾处的空格 | |
忽略大小写 | 不忽略 | - 忽略 - 不忽略 | 如果忽略,则在比较值时不会考虑大小写。 例如,与'HELLO'或'hello'匹配将具有相同的结果。 如果<匹配策略>设置为“乐观匹配”,则忽略此属性。 |
分组正则表达式 | 指定正则表达式以针对每一行进行匹配,以确定应将该行放入哪个捕获组。正则表达式必须至少有一个用于匹配行的捕获组。 如果正则表达式中存在多个捕获组,则所有捕获组的值将连接在一起。 除非两个行具有相同的组值(或者两个行都不匹配正则表达式),否则不会将两行放入同一个数据流中。 例如,要将第一列中的CSV文件中的所有行组合在一起,我们可以将此值设置为“(.?),.”。 具有相同组但具有不同连线的两行永远不会放在同一个数据流中。 |
动态参数:
名字 | 值 | 描述 |
---|---|---|
Relationship Name | value to match against | 与用户自定义正则表达式的属性值相匹配的内容路由到数据流输出,该输出数据流的名字由用户自定义属性的键所决定。 支持表达式语言 (支持流属性和变量) |
连线:
名字 | 描述 |
---|---|
original | 当所有输入的文本行流已经路由到一个或多个连线时,原始输入数据流将路由到此连线。 |
unmatched | 不满足用户自定义规则的数据将路由到此连线 |
动态连线:
根据用户设置可创建动态连线。
名字 | 描述 |
---|---|
Name from Dynamic Property | 与用户自定义的正则表达式匹配的数据流将路由到此动态连线。 |
读取属性:
未提供。
写入属性:
名字 | 描述 |
---|---|
RouteText.Route | 数据流路由到的连线名称。 |
RouteText.Group | “分组正则表达式”属性中所有捕获组捕获的值。 如果未设置此属性或不包含捕获组,则不会添加此属性。 |
状态管理:
该组件不保存状态。
限制:
该组件没有限制
输入流要求:
组件必须提供输入流。
系统资源考量:
未提供。