You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则捕获JSON列表中Token值以实现Flink日志脱敏

解决方案

要实现对tokenList数组中每个Token的单独脱敏,你需要让正则全局匹配数组内的每个Token字符串,并将每个Token的内容作为独立捕获组,这样脱敏工具就能逐个处理每个Token的前x个字符。

正则表达式(针对无转义双引号的Token)

(?<="tokenList":\s*\[(?:[^[\]]*?))"([^"]+)"(?=(?:[^[\]]*?)\])

开启全局匹配(g标志),这个正则会:

  • 仅在"tokenList": [...]的数组范围内匹配
  • 捕获每个被双引号包裹的Token内容到捕获组1
  • 自动适配数组内任意数量的Token

脱敏效果验证

当x=3时,原JSON:

{"tokenType":"email","tokenList":["token1","token2","token3","token4"]}

经过工具处理后,每个捕获组的前3个字符会被替换为***,得到:

{"tokenType":"email","tokenList":["***en1","***en2","***en3","***en4"]}

特殊情况处理(Token含转义双引号)

如果你的Token可能包含转义双引号(如"tok\"en1"),请使用以下正则:

(?<="tokenList":\s*\[(?:[^[\]]*?))"((?:\\.|[^"\\])+)"(?=(?:[^[\]]*?)\])

关键逻辑说明

  • 正向预查(?<="tokenList":\s*\[(?:[^[\]]*?))和(?=(?:[^[\]]*?)\])确保只处理tokenList数组内的内容,避免误脱敏其他字段(如tokenType的值)
  • 全局匹配模式会遍历数组内所有Token,每个Token的内容都作为独立捕获组被工具处理

内容的提问来源于stack exchange,提问作者Vaibhav Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 22:35:15