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。