gpt4 book ai didi

java - 正则表达式在 Java 中包含多个 EmailId

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:14:21 26 4
gpt4 key购买 nike

我有一个要求,我向客户发送多封电子邮件。

但是我在向多个电子邮件 ID 发送电子邮件时遇到了问题。

例如,如果我写

s@t.com;r@t.com

它会抛出一个错误,指出电子邮件 ID 不正确。

我希望电子邮件 ID 用分号分隔,但我的正则表达式似乎不支持分号。

正确的格式应该是:

s@t.com;d@r.com

不应该

s;r@t.com

使用正则表达式

myregex = "^['_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"

请指导。

最佳答案

您有一个用于 1 封电子邮件的正则表达式。

现在,您要检查字符串是否包含 email + ( ; + email ) {任意次数} .

您需要将之前的模式用作没有 anchor 的 block ,并像这样构建最终模式:

String myregex = "['_A-Za-z0-9-+]+(?:\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(?:\\.[A-Za-z0-9]+)*\\.[A-Za-z]{2,}"; 
String final_pattern = "\\A" + regex + "(?:;" + regex + ")*" + "\\z";

参见 regex demo

请注意 \A 是字符串的明确的开头,\z - 非常的字符串结尾 anchor 。

另请注意,字符类中的 + 会失去其作为量词的特殊含义(1 次或多次),并变成/被视为纯粹的文字 + 符号。我还删除了不必要的分组并将所有捕获组变为非捕获组以进行“更清晰”的匹配(如果您不需要捕获的值,为什么将它们存储在每个组的堆栈中?)。

关于java - 正则表达式在 Java 中包含多个 EmailId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38498553/

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