gpt4 book ai didi

java - 在正则表达式中使用 OR 进行分组

转载 作者:行者123 更新时间:2023-12-01 23:25:52 26 4
gpt4 key购买 nike

下面是我的正则表达式模式。我用它来验证电子邮件地址。

^[\\w]+(\\.|\\_)?[\\w]+\\@{1}[\\w]+\\.{1}(([A-Za-z]+)|(\\.{1}[A-Za-z]+))$

电子邮件 ID 必须遵循以下规则。
1. 1 个句点或下划线之前包含任意数量的字母或数字。
2. 1 @之前可跟任意数量的字母或数字。
3. 1 个句号之前可跟任意数量的字母或数字。
4.(后跟任意数量的字母)或(1 个句点和任意数量的字母)。

我遇到了第四条规则的问题。对于以 @xyz.abc 结尾的电子邮件 ID 可以正常工作,但对于 @xyz.abc.ab 则失败

是否无法像我一样对第四条规则的模式进行分组?

解决方案:

"^[A-Za-z0-9]+[\\._][A-Za-z0-9]+@[A-Za-z0-9]+(?:\\.[A-Za-z]+){1,2}$"

最佳答案

根据您的描述,您想要的实际上是:

^[A-Za-z0-9]+[\\._][A-Za-z0-9]+@[A-Za-z0-9]+(?:\\.[A-Za-z]+)+$

把它分开,你有:

  1. 字母或数字 ([A-Za-z0-9]+)
  2. 下划线或句点 ([\\._])
  3. 字母或数字 ([A-Za-z0-9]+)
  4. @ 符号 (@)
  5. 字母或数字 ([A-Za-z0-9]+)
  6. 一个或多个句点加字母 ((?:\\.[A-Za-z]+)+)

请注意,\\w 包含 _,因此您不能在此处使用它。

关于java - 在正则表达式中使用 OR 进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20020057/

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