java - SL4J 配置更改或正则表达式以屏蔽 Json 中的电子邮件(由 '@' 和 '.com' 识别)

标签 java json regex string slf4j

我想在作为安全协议(protocol)一部分进行日志记录时从 JSON 中屏蔽 Java 中的电子邮件地址。 我尝试过使用字符串操作进行替换的原始方法,但我不可能搜索整个项目。 SL4J中是否有任何可能的配置或正则表达式是唯一的出路

如果日志(slf4j)打印的响应如下:

{
  "any_key": {

    "salt": "salt_here",
    "sel": "sel_here",
    "rules": [
      {
        "variation": 0,
        "clauses": [
          {
            "attribute": "email",
            "op": "in",
            "values": [
              "jack.jones@gmail.com",
              "david.beckham@yahoo.com"
            ],
            "negate": false
          }
        ]
      }
    ]
  }
}

它应该在日志中打印 json,如下所示:

{
    "any_key": {
    "salt": "salt_here",
    "sel": "sel_here",
    "rules": [
      {
        "variation": 0,
        "clauses": [
          {
            "attribute": "email",
            "op": "in",
            "values": [
              "jac*******@******com",
              "dav**********@******com"
            ],
            "negate": false
          }
        ]
      }
    ]
  }
}

最佳答案

(?<=[\"|\']\p{L}{3}).*\@.*(?=com)

此正则表达式将检测 \"\p{L}{3}("后跟三个字母)和 com 之间的任何内容。然后,您可以迭代匹配并将每个字符替换为 *(@ 除外)。

编辑:

要包含“something@xyz.com”(som******@****com),请使用更新后的正则表达式,现在允许 \"\' 作为分隔符。

https://regex101.com/r/qX1MjR/2

关于java - SL4J 配置更改或正则表达式以屏蔽 Json 中的电子邮件(由 '@' 和 '.com' 识别),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50350230/

相关文章:

java - 如何修复 Netbeans 中的内部或外部命令错误?

java - 将重复值导入到 Java 折线图中

json - 在 Swift 中访问*远程* JSON 深层嵌套对象

javascript - 从 Firebase 检索数据未在控制台中正确显示

Python使用正则表达式查找文本中的所有内容

正则表达式匹配包含单词的文件名,无论大小写

java - 小错误第10001个素数java代码?

java - OnLocationChanged 只工作一次

javascript在数组中获取对象数组中某个键的所有不同值

javascript - 用方括号替换所有内容的正则表达式