RegEx以电子邮件开头的东西

时间:2014-06-05 20:36:52

标签: regex virtual alias postfix-mta

我想在Postfix中创建一个掩码,以便向某人发送所有以单词开头的电子邮件,并在规则中包含域名。我的问题不是如何在Postfix中做到这一点(我知道)。我的问题是创建RegExp来做我想做的事:(

一般来说:

promo*@example.com -> mybox@example.com

因此,如果有人发送电子邮件至:

promotion@example.com
promoter@example.com
promospecial@example.com

或以“promo”开头的任何内容,这是一封收到所有邮件的特定邮件。但需要拥有域名,因为这需要适用于example.com而不是example.org。

我尝试了几件事,比如/ (^promo.*)/+@example.com,但没有任何作用。我真的遇到了RegExp的问题。

2 个答案:

答案 0 :(得分:2)

在正则表达式中,()中的内容被精确搜索,而*。是任意数量的任何字符。

所以/(promo).*(@example.com)/是我相信你正在寻找的。

如果您需要regexp帮助,请在将来尝试使用http://www.regexr.com/进行正则表达式。

答案 1 :(得分:1)

这应该适用于postfix,因为它似乎支持前瞻:

搜索:promo[^@\s]*?(?=@example\.com)

替换:mybox

解释正则表达式

promo                    # 'promo'
[^@\s]*?                 # any character except: '@', whitespace (\n,
                         # \r, \t, \f, and " ") (0 or more times
                         # (matching the least amount possible))
(?=                      # look ahead to see if there is:
  @example               #   '@example'
  \.                     #   '.'
  com                    #   'com'
)                        # end of look-ahead