如何在Jolt中使用正则表达式实现文本替换?
如何在Jolt中实现正则表达式文本替换
Jolt本身没有单独的正则替换转换类型,但可以通过modify-transform中的replace函数实现正则匹配替换,以下是针对需求的具体实现方案:
输入数据
[ { "name": "abc_google@gmail.com" }, { "name": "ayan.agrawal$1990@gmail.com" } ]
目标正则规则
匹配并移除所有非a-zA-Z0-9#$@的字符,正则表达式:[^a-zA-Z0-9#$@]
Jolt转换规范
[ { "operation": "modify-overwrite-beta", "spec": { "*": { "name": "=replace(@(1,name), '[^a-zA-Z0-9#$@]', '')" } } } ]
规范说明
modify-overwrite-beta:用于修改已有字段的值,此处覆盖原name字段*:遍历输入数组中的每一个对象元素=replace(...):Jolt内置的字符串替换函数,支持正则匹配:- 第一个参数
@(1,name):引用当前对象下的name字段值 - 第二个参数是目标正则表达式
- 第三个参数是空字符串,表示将匹配到的字符替换为空(即移除)
- 第一个参数
转换后输出
[ { "name": "abcgoogle@gmailcom" }, { "name": "ayanagrawal$1990@gmailcom" } ]
内容的提问来源于stack exchange,提问作者ayan_2587
相关产品推荐
相关产品推荐

