能力说明
功能简介
根据一个字段的内容,进行批量条件的匹配,匹配的条件对应的替换值,写入另一个字段中
常见情境:
1.要批量将1980~1989开头的日期,输出为“80后”,同理“90后”,“00后”
2.要将0,1 替换成 男、女
配置参数
| 参数名称 | 参数类型 | 是否必填 | 默认值 | 参数说明 |
|---|---|---|---|---|
| 要检查的字段 | string | 是 | 能力输入字段,用户匹配规则 | |
| 替换后存储的字段 | string | 是 | 经过匹配后,将最终值写入哪个字段 | |
| 替换条件 | json | 是 | 描述替换条件的json,能力界面以表格的形式展现 |
输入简介
JSON对象格式的数据(json数组不支持)
关于替换条件
替换条件结构如下如下
[{
"target_value": "男",
"condition_type": "enum",
"condition_value": ["man","1","male"]
}, {
"target_value": "女",
"condition_type": "enum",
"condition_value": ["woman","0","female"]
}
]
上述例子是一个拥有两条条件的配置结果,分别对应了男女两项配置条件,其中含义为
target_value(替换值):匹配条件后,写入输出字段的最终值
(新增功能:若替换值是被双层中括号包裹的,则认为中括号内部是字段名,会使用源数据内的对应字段值作为替换值,例如[[format_content]],但若此字段不存在,则直接按失败处理并抛出异常)
condition_type(检查类型):支持四种,分别是枚举、正则、时间范围、数值范围
condition_value(检查条件):根据检查类型的不同,内部值的含义也不同
关于替换条件的各种检查类型
1.枚举
用户给出若干匹配字段的值,程序检查输入字段是否与用户给出的匹配值相等,若相等,则输出处替换的最终值
例如,上述例子中,当发现输入字段是 "man" 或 "male" 或 "1" 的时候,就会输出 "男",若不是,则检查下一条关于"女"的规则
多条规则时,从上到下只要匹配到一条,则不再进行其余的匹配,直接输出
2.正则匹配
对用户给出的正则,对能力输入字段进行完整匹配,匹配成功则输出替换的最终值
3.时间范围
该功能要求输入字段严格符合 yyyy-MM-dd HH:mm:ss 的格式,也就是说,最好在能力前面使用“时间归一化”将字段做标准化
若能力输入字段的时间处于用户设置的两个时间内,则匹配成功。注意:该匹配是包含两个边界时间点的
4.数值范围
同时间范围一致,要求输入字段必须是数字(或存有数字的字符串),不能混有字母和中文等
目前仅支持正整数匹配
若能力输入数值处于用户指定两值范围内的时候,则匹配成功。同理此匹配也是包含两个边界值的
5.正则替换
对用户给出的正则和替换值,对能力输入字段进行正则替换(效果同正则替换能力),和前4个不同之处在于,替换成功后不会停止,而是会执行下一个匹配或替换条件
输入数据样例
{
"sex":"man"
}
{
"sex":"woman"
}
输出简介
本能力会将数据按 “替换成功”,“未替换”,“失败” 三类输出到不同的队列中
输出数据样例
{
"sex":"man",
"sex_cn":"男"
}
{
"sex":"woman",
"sex_cn":"女"
}
相关能力
时间归一化 正则替换
参考指标
数据质量:100%
处理性能:未知
附加说明
2024年5月14日
- 对target_value(替换值)进行了增强:若替换值是被双层中括号包裹的,则认为中括号内部是字段名,会使用源数据内的对应字段值作为替换值,例如[[format_content]]
2024年4月29日
增加正则替换功能(正则替换可以不中断,也就是会把所有替换都跑完,只要不遇到其他类型的匹配规则)
修正了当替换值内有< >这类html字符时,下方表格显示不出来的问题
替换目标值可以留空
替换条件可以编辑和调整顺序
增加备注字段