gpt4 book ai didi

Java正则表达式电子邮件替换所有空格和 "[at]"符号

转载 作者:行者123 更新时间:2023-11-30 06:37:51 27 4
gpt4 key购买 nike

我有一个使用正则表达式来验证电子邮件地址的方法。

public String searchFormail(String searchWord) {

Pattern pattern = Pattern
.compile("([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z]{2,})");
Pattern pattern2 = Pattern.compile("([\\w\\-]([\\.\\w])+[\\w]+ \\(at\\)([\\w\\-]+\\.)+[A-Za-z]{2,4})");

Matcher matchs = pattern.matcher(searchWord);
Matcher matchs2 = pattern2.matcher(searchWord);

if (matchs.find() || matchs2.find()) {
return searchWord.substring(matchs.start(), matchs.end());

}

return null;
}

第一个问题:如果 searchFormail 将此字符串作为输入“support@ google.com”,请注意 @ 后面的空格。如何替换此空格以使字符串输入变为“support@google.com”。我在正则表达式中尝试了 //s ,但这只是忽略了空格。所以,这没有帮助。

第二个问题:我的第二个模式(使用“google[at]support.com”验证邮件)不起作用。如何改进此正则表达式以获取“google[at]support.com”等电子邮件,使其变为“google@support.com”,例如将“[at]”转换为@。

提前谢谢您。

最佳答案

第一个问题:实际上邮件地址从来不允许空格,所以我会简单地通过类似的方式删除所有空格

searchWord = searchWord.replaceAll("\\s+","")

第二个问题:您的 pattern2 包含空格 ([\\w\\-]([\\.\\w])+[\\w]+_HERE_ARE_WHITESPACES_\\( at\\)([\\w\\-]+\\.)+[A-Za-z]{2,4})。因此它找不到邮件地址。

此外,您的模式还会查找“google(at)support.com”等电子邮件格式,而不是“google[at]support.com”。

要将“(at)”替换为实际的“@”,您需要调整模式2并使用replaceFirst方法。这是适合我的完整代码。我希望它有帮助。

public static String searchFormail(String searchWord) {

searchWord = searchWord.replaceAll("\\s+","");

Pattern pattern = Pattern
.compile("([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z]{2,})");
Pattern pattern2 = Pattern.compile("([\\w\\-]([\\.\\w])+[\\w]+)(\\(at\\))(([\\w\\-]+\\.)+[A-Za-z]{2,4})");

Matcher matchs = pattern.matcher(searchWord);
Matcher matchs2 = pattern2.matcher(searchWord);

if(matchs.find()){
return searchWord.substring(matchs.start(), matchs.end());
}
else if(matchs2.find()){
return matchs2.replaceFirst("$1@$4");
}

return null;
}

关于Java正则表达式电子邮件替换所有空格和 "[at]"符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44910902/

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