如果字符串仅包含批准的子字符串,则需要匹配字符串的帮助

发布于 2024-11-01 01:02:23 字数 383 浏览 2 评论 0原文

我很难编写这个正则表达式。

基本上,如果邮件收件人信封包含未经批准的域,我需要阻止电子邮件传递。我的互联网邮件网关 (Brightmail) 允许创建规则,我可以在其中使用“匹配/不匹配”正则表达式指定条件。

例如,我只需要允许发送邮件到 yahoo.com、hotmail.com 和 gmail.com。

如果有人向其他域发送消息,则应阻止该消息。

如果有人向 yahoo.com 和其他域发送消息,则应阻止该消息

。如果有人向 yahoo.com 发送消息,则应允许该消息。

这可能吗?

如果有人向 yahoo.com 和 hotmail.com 发送消息,则应允许该消息。

我不是正则表达式的菜鸟,但这个让我难住了。

I am having a hard time writing this regular expression.

Basically I need to block email delivery if the message recipient envelope contains an unapproved domain. My internet mail gateway (Brightmail) allows to create rules where I can specify a condition using Match/DoesNotMatch a regular expression.

For example I need only allow mail to yahoo.com, hotmail.com, and gmail.com.

If someone sends a message to some other domain, the message should be blocked.

If someone sends a message to yahoo.com AND some other domain, the message should be blocked

If someone sends a message to yahoo.com, the message should be allowed.

Is this possible?

If someone sends a message to yahoo.com and hotmail.com, the message should be allowed.

I am not a total noob with regular expression, but this one has me stumped.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

似最初 2024-11-08 01:02:23

听起来这是可能的。这将是一个令牌查找,令牌之间有一系列 OR 运算符。

我不知道你是否曾经使用过这个网站,但当我开发正则表达式查询时,它是一个天赐之物。

http://regexpal.com/

That sounds like its possible. It would be a token find where you have a series of OR operators between tokens.

I don't know if you have ever used this site, but it is a GODSEND when I am developing regex queries.

http://regexpal.com/

轮廓§ 2024-11-08 01:02:23

我使用 RegexPal 并选择了一个能够满足我的需求的组合。

基本上,这将仅匹配那些不是列出的字符串的@字符之前的子字符串。

(?!(.@yahoo.com|.@hotmail.com|.@gmail.com)).@

甚至这也可以

(?!(.@yahoo.com|.@hotmail.com|.*@gmail.com))@

或这个

@(?!(.@yahoo.com|.@hotmail.com|.*@gmail.com))

甚至更好

@(?!(.*(yahoo|hotmail|gmail).com))

最后一个只会突出显示不属于的域名字符串中的@符号。

I played with RegexPal and picked a combination that will satisfy my needs.

Basically this will match the substrings before the @ character for only those strings that ARE NOT the listed ones.

(?!(.@yahoo.com|.@hotmail.com|.@gmail.com)).@

or even this will work

(?!(.@yahoo.com|.@hotmail.com|.*@gmail.com))@

or this

@(?!(.@yahoo.com|.@hotmail.com|.*@gmail.com))

or even better

@(?!(.*(yahoo|hotmail|gmail).com))

The last one will just highlight the @ sign in the domain name strings that do Not belong.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文