Regex如果所有单词都包含特定符号[重复]

92vpleto  于 2023-05-08  发布在  其他
关注(0)|答案(5)|浏览(142)

此问题已在此处有答案

RegularExpressionValidator for multiple emails(3个答案)
9年前关闭。
我有一串电子邮件“test@test.lt; test2@test.lt; test3@test.lt”
如何编写简单的正则表达式来检查是否所有单词都至少包含一次[@.]?

1yjd4xko

1yjd4xko1#

不需要regex:

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

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

lf5gs5x2

lf5gs5x22#

我不认为RegEx是必要的,但这里是我会使用的模式; \b[a-zA-Z0-9]+@[a-zA-Z0-9]+\b
\b是单词边界,然后我有字母数字字符集。+表示前一个字符出现一次或多次。所以它说从一个词的边界,它可以有0个或多个字符后面跟一个@,然后再一次,一个或多个字母数字字符后面跟一个词的边界。

vom3gejh

vom3gejh3#

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

这是一个字符,后跟@,然后是一个非;字符,后跟一个可选的;

jtw3ybtb

jtw3ybtb4#

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

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

实际上,这就是您所需要的全部内容,但有效的电子邮件地址可能包含!#$%&'*+-/=?^_ {|}~`所以你可能想根据使用情况来改变它。

ef1yzkbh

ef1yzkbh5#

如果你需要一个电子邮件验证器,试试这个正则表达式:
[a-zA-Z0-9-]{1,}@([a-zA-Z.])?[a-zA-Z]{1,}.[a-zA-Z]{1,4}

相关问题