gpt4 book ai didi

java - 在 String Java 中搜索并替换 SSN 和/或信用卡

转载 作者:太空宇宙 更新时间:2023-11-04 06:18:57 24 4
gpt4 key购买 nike

我希望在 Java 中搜索信用卡号和/或 SSN 的文本字符串,然后用占位符替换该匹配项。由于某种原因,我无法弄清楚这一点,因此我们将不胜感激。

下面是我写的一个方法。我认为我的正则表达式模式已关闭,因为它从未找到任何一个。在 google/stackoverflow 上搜索时,我惊讶地找不到以前有人这样做的好例子,所以我认为这将是一个很好的问题,可以添加到社区中。

我需要搜索可能出现 CC 或 SSN 的所有格式,即 111-11-1111/111111111/4111111111111111/4111-1111-1111-1111。我还需要搜索所有可能的信用卡(AMEX、VISA、DISCOVER 等)

寻找最具创意的方法来做到这一点!

private static final String ssnPattern = "^\\d{3}-?\\d{2}-?\\d{4}$";
private static final String ccPattern = ".*^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9] {14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$.*";

private static final Pattern ssnDetector = Pattern.compile(ssnPattern);
private static final Pattern ccDetector = Pattern.compile(ccPattern);
private static final String CC_PLACEHOLDER = "{CREDIT_CARD_REDACTED}";
private static final String SSN_PLACEHOLDER = "{SSN_REDACTED}";

public static void main(String[] args){
String body3 = "Here is my credit card 4111111111111111 and my SSN 111-22-3333";
body3 = redactCC(body3);
body3 = redactSSN(body3);
logger.info(body3);
}

public static String redactSSN(String data){
Matcher m = ssnDetector.matcher(data);
return m.replaceAll(SSN_PLACEHOLDER);
}

public static String redactCC(String data){
Matcher m = ccDetector.matcher(data);
return m.replaceAll(CC_PLACEHOLDER);
}

最佳答案

没有 ^、没有 $、没有 .* 并删除了 {14} 之前的空格

private static final String ssnPattern = "\\d{3}-?\\d{2}-?\\d{4}";
private static final String ccPattern = "(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|" +
"6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|" +
"(?:2131|1800|35\\d{3})\\d{11}|" +
"(?:4\\d{3}|5[1-5]\\d{2}|6011|7\\d{3})-?\\d{4}-?\\d{4}-?\\d{4}|3[4,7]\\d{13})";

修复 m.group 拼写错误

while (n.find()) {
System.out.println("Found a " + n.group() + ".");

关于java - 在 String Java 中搜索并替换 SSN 和/或信用卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27700014/

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