Abh*_*kar 6 java regex groovy regex-group
我有一个这样的字符串:docker login -u username -p password docker-registry-url.
我用Groovy脚本执行命令execute.出于调试目的,我在执行前打印命令,但由于它包含敏感数据,因此我对用户名和密码进行了模糊处理.
def printableCmd = cmd.toString()
def m = printableCmd =~ /(?:.+) -u (.+) -p (.+) (?:.+)/
if (m.matches() && m[0].size() >= 3) {
printableCmd = m[0][-1..-2].inject(m[0][0]) { acc, val -> acc.replaceAll(val, "***") }
}
Run Code Online (Sandbox Code Playgroud)
上面的工作正如预期和打印docker login -u *** -p *** docker-registry-url,但我想知道是否有更惯用的方式来做到这一点.请注意,我不想删除捕获的组,只需用星号替换它们,因此非常清楚命令没有错误,但出于安全目的进行模糊处理.
dag*_*ett 10
def cmd='docker login -u username -p password docker-registry-url'
println cmd.replaceAll(/(\s-[up]\s+)(\S+)/,'$1***')
Run Code Online (Sandbox Code Playgroud)
输出:
docker login -u *** -p *** docker-registry-url
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4231 次 |
| 最近记录: |