Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 对于电子邮件地址,是否将域或域与子域匹配?_Regex - Fatal编程技术网

Regex 对于电子邮件地址,是否将域或域与子域匹配?

Regex 对于电子邮件地址,是否将域或域与子域匹配?,regex,Regex,我正在尝试创建一个正则表达式,它可以处理电子邮件。我需要匹配的电子邮件是从某个特定的域或从某个特定的域和子域。域必须精确匹配 我有这个: @.*\.?somedomain\.com$ 是的,这将匹配: fdsafd@a1.somedomain.com fdsafd@somedomain.com fdsafd@aabbddjjj.somedomain.com 这正是我需要的。但是,它也是一个包含somedomain.com的域,这不是我想要的: fdsafd@partsomedom

我正在尝试创建一个正则表达式,它可以处理电子邮件。我需要匹配的电子邮件是从某个特定的域或从某个特定的域和子域。域必须精确匹配

我有这个:

@.*\.?somedomain\.com$
是的,这将匹配:

  fdsafd@a1.somedomain.com
  fdsafd@somedomain.com
  fdsafd@aabbddjjj.somedomain.com
这正是我需要的。但是,它也是一个包含
somedomain.com
的域,这不是我想要的:

fdsafd@partsomedomain.com

我希望域
somedomain.com
能够精确匹配

如何修复它?

请尝试以下操作:

\w+\.com

它将选择
.com
及其前面的单词。

我将匹配以下内容:

@(.*\.)?somedomain\.com$

somedomain
保证是一个完整的DN路径,而不是其中的一部分,因为它要么跟随可选组的结尾
,要么跟随它前面的
@

您需要使整个子域成为可选的,而不仅仅是点。不要使用
*\。?
,而是使用类似
(?:*\)?
()的内容。此外,您可能应该用一些东西替换
*
部分。@41686d6564我本来打算用另一种解决方案,但意识到我错了,现在我发布了一个答案,基本上就是您的评论。告诉我,如果你把它作为答案发布,我会删除我的。@41686d6564为什么需要
?:
?@Aaron没关系。谁发布答案并不重要,只要OP解决了他们的问题:)@kosmosu,它被称为a。