gpt4 book ai didi

Java多正则表达式搜索

转载 作者:行者123 更新时间:2023-11-30 03:23:57 24 4
gpt4 key购买 nike

我有一个像这样的字符串:

If message contains sensitive info like: {Password:123456, tmpPwd : tesgjadgj, TEMP_PASSWORD: kfnda}

我的模式应该查找特定的单词PasswordtmpPwdTEMP_PASSWORD

如何为此类搜索创建模式?

最佳答案

我认为您正在寻找这些词后面的值。您需要设置捕获组来提取这些值,例如

String content = "If message contains sensitive info like: {Password:123456, tmpPwd : tesgjadgj, TEMP_PASSWORD: kfnda} ";
Pattern p = Pattern.compile("\\{Password\\s*:\\s*([^,]+)\\s*,\\s*tmpPwd\\s*:\\s*([^,]+)\\s*,\\s*TEMP_PASSWORD:\\s*([^,]+)\\s*\\}");
Matcher m = p.matcher(content);
while (m.find()) {
System.out.println(m.group(1) + ", " + m.group(2) + ", " + m.group(3));
}

参见 IDEONE demo

这将输出 123456, tesgjadgj, kfnda

要查明是否存在任何子字符串,请使用 contains 方法:

System.out.println(content.contains("Password") || 
content.contains("tmpPwd") ||
content.contains("TEMP_PASSWORD"));

参见 another demo

如果您想要关键字的正则表达式解决方案,这里是:

String str = "If message contains sensitive info like: {Password:123456, tmpPwd : tesgjadgj, TEMP_PASSWORD: kfnda} ";
Pattern ptrn = Pattern.compile("Password|tmpPwd|TEMP_PASSWORD");
Matcher m = ptrn.matcher(str);
while (m.find()) {
System.out.println("Match found: " + m.group(0));
}

参见 Demo 3

关于Java多正则表达式搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30709362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com