PCRE正则表达式为Re2正则表达式,没有负向视图
我正尝试使用正则表达式来过滤来自我办公室G Suite帐户电子邮件路由中某些地址的电子邮件。 为了做到这一点,我创建了以下正则表达式来执行以下操作:
为了做到这一点,我创建了以下正则表达式来完成上述功能:
^(?!test|tes2)[A-Z0-9._%+-]+@domain.com$
这一个将拒绝test@domain.com和tes2@domain.com并接受来自该域名的所有其他组合。
但是,G套件不接受PCRE正则表达式,所以我目前无法实现这一点。
暂时,我创建了以下Re2正则表达式来接受来自所述域的所有电子邮件地址:
(W|^)[w.+-]{0,25}@(domain).com(W|$)
如何扩展这个以允许在re2 regex中不允许使用lookarounds的功能?
由于这种负面预测是固定大小的,所以像这样扩展它相对简单。 虽然它确实在复杂性上爆炸了; 为了提高可读性,我添加了评论和间隔。
^
( # not /^t/
[A-SU-Z0-9._%+-][A-Z0-9._%+-]*
| # /^t/ but not /^te/
t ([A-DF-Z0-9._%+-][A-Z0-9._%+-]*)?
| # /^te/ but not /^tes/
te ([A-RT-Z0-9._%+-][A-Z0-9._%+-]*)?
| # /^tes/ but not /^tes[t2]/
tes ([A-SU-Z013-9._%+-][A-Z0-9._%+-]*)?
) @domain.com $
链接地址: http://www.djcxy.com/p/92645.html
上一篇: PCRE regex to Re2 Regex without negative lookahead
下一篇: How to match all email addresses at a specific domain using regex?