【问题标题】:Regex if all words contains particular symbols [duplicate]正则表达式,如果所有单词都包含特定符号[重复]
【发布时间】:2013-06-04 15:17:17
【问题描述】:

我有一串电子邮件“test@test.lt; test2@test.lt; test3@test.lt”

如何编写简单的正则表达式来检查所有单词中是否至少包含一次 [@.]?

【问题讨论】:

  • a.b@site.co.uk 呢?

标签: c# .net regex


【解决方案1】:

不需要正则表达式:

bool allOk = str.Split(';').All(email => email.Count(c => c == '@') == 1);

虽然这可能会导致错误的结果(foo@bar_foo.com 不是有效的电子邮件!)

【讨论】:

  • 即使你有 @;@;@; 也可以工作...
  • @FelicePollano 是的,但“每封电子邮件中的@一次”是 OP 给出的规范。要全面检查电子邮件,他可以使用 split+regex 或通用 regex。
  • 是的,但是 OP 询问 如何检查所有单词中是否包含 [@.] 一次,我回答了这个问题。
【解决方案2】:

你可以试试:

[_a-zA-Z0-9-]+?@[_.a-zA-Z0-9-^;]+;?

这是一些字符后跟@加上一些字符而不是';'后跟一个可选的 ; look at the demo here.

【讨论】:

  • 这将匹配!@#,它对应于123,顺便说一句,不是电子邮件。
  • @YoryeNathan 正确,我们可以细化 .+ 部分
  • 现在它与 a_b@x.y.z 不匹配 - 不确定 OP 是否希望支持带有两个点的电子邮件(例如 me@hotmail.co.il),但绝对允许使用下划线。
【解决方案3】:

我不认为 RegEx 是必要的,但这是我将使用的模式; \b[a-zA-Z0-9]+@[a-zA-Z0-9]+\b

\b 是单词边界,然后我设置了字母数字字符。 + 表示前一个字符出现一次或多次。所以它是说从一个单词边界开始,它可以有 0 个或多个任何字符后跟一个 @,然后再一次,一个或多个任何字母数字字符后跟一个单词边界。

【讨论】:

  • 我想在 javascript 中使用这个表达式。 "\b.*@.*\b" 不正确,因为它不验证 "test@test.com test"。
  • 不会 .* 也匹配诸如空格或 ; 之类的边界?
  • @Reno 它匹配“test@test.com” 为什么它应该匹配电子邮件地址末尾的一些随机词?如果这就是您想要的,则将尾随单词边界符号作为您的分隔符,而不是它似乎是一个分号。是的,你可能想用一些字符集替换.*,然后是*,比如[a-zA-Z0-9]*
  • @evanmcdonnal 他的意思是它错误地匹配Hey, how's the g@ing mate?
  • @YoryeNathan 好吧,那么我只需要使用更受限制的字符集进行编辑。由于“@foo.com”不是有效的电子邮件地址,因此也改为加号。
【解决方案4】:

@jsfviky 答案的这个简单变​​体允许在域级别和本地部分的电子邮件地址中使用句点和连字符,以及一次性样式电子邮件地址的加号:

[a-zA-Z0-9-\.\+]{1,}@(?:[a-zA-Z])[a-zA-Z\.-]{1,}.[a-zA-Z]{1,4}

实际上,这就是您所需要的,但有效的电子邮件地址可能包含!#$%&'*+-/=?^_{|}~`中的任何一个,因此您可能需要根据使用情况来改变它。

【讨论】:

    【解决方案5】:

    如果您需要电子邮件验证器,请试试这个正则表达式:

    [a-zA-Z0-9-]{1,}@([a-zA-Z.])?[a-zA-Z]{1,}.[a-zA-Z]{1 ,4}

    【讨论】:

    • 看起来不太对劲。它匹配a@.b.c
    • 你是对的。固定:[a-zA-Z0-9-]{1,}@([a-zA-Z])?[a-zA-Z]{1,}\.[a-zA-Z]{1, 4}
    • 电子邮件中是否允许使用 - 字符?我知道_ 是,甚至可能是....你可以用\\w 缩短[a-zA-Z0-9_],顺便说一句。
    猜你喜欢
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    相关资源
    最近更新 更多