регулярное выражение re2, начинающееся с From: и заканчивающееся на domain.com

Я пытаюсь придумать регулярное выражение, которое можно использовать для фильтрации входящей электронной почты в мой домен Google Apps. Я использую Content Compliance, чтобы проверить, подписано ли оно с помощью DKIM, а затем посмотреть, содержит ли часть заголовка «From:» наше доменное имя. Если он не подписан и ДЕЙСТВИТЕЛЬНО содержит наше доменное имя, я отправляю его в карантин.

Выражение, которое у меня есть, вероятно, слишком сложное, и в нем все еще не хватает вещей. Сегодня пропустил:

From: "Employee Name" <[email protected]>

Мне нужно регулярное выражение re2 (версия, которую использует Google), которое будет соответствовать:

From: [email protected]

Я использовал следующее, но некоторые из них отсутствуют:

((From:)\s{0,1}([\w.+\-]{0,40})\s{0,1}(\W|^)[\w.+\-]{0,25}@(mydomain)\.com(\W))

Любая помощь будет принята с благодарностью!


person Shc Final Judgement    schedule 13.08.2015    source источник
comment
Попробуйте From:\s{0,10}"[\w.+\s\-]{0,25}"\s{0,1}\W[\w.+\-]{0,25}@mydomain\.com\W.   -  person Wiktor Stribiżew    schedule 14.08.2015
comment
К сожалению, они не всегда следуют одному и тому же формату. Иногда это будет похоже на приведенное выше, но в других случаях это будет просто [email protected] Мне действительно нужно что-то, что совпадает, когда строка начинается с From: и заканчивается на mydomain.com, независимо от того, что находится между ними.   -  person Shc Final Judgement    schedule 14.08.2015
comment
Проблема может быть в длине. Если это тот случай, когда вы не можете использовать кванторы * или +, From:.*?@mydomain\.com не будет работать.   -  person Wiktor Stribiżew    schedule 14.08.2015


Ответы (2)


Попробуй это,

'(From)(:)(\\s+)(".*?")(\\s+)(\\<)((?:[a-z][a-z]+))(@)((?:[a-z][a-z\\.\\d\\-]+)\\.(?:[a-z][a-z\\-]+))(?![\\w\\.])(\\>)'

Здесь From: будет исправлено.

"Employee Name" #can replace any string within quotes
<[email protected]> #can replace any email within <> tag

Для @mydomain.com

Вы можете использовать это,

'(From)(:)(\\s+)(".*?")(\\s+)(\\<)[\\w\\.-]+(@)(mydomain\\.com)(\\>)'

Дайте мне знать, если это поможет

person Md. Mohsin    schedule 14.08.2015
comment
@Shc Final Judgment Также дайте мне знать, если вам нужны небольшие изменения, я обновлю свой ответ в соответствии с вашими требованиями, спасибо. - person Md. Mohsin; 14.08.2015
comment
Спасибо, мистер Мохсин. Мне нужно, чтобы он просто соответствовал нашему домену. Я использую это, чтобы заблокировать людей, подделывающих наш домен при отправке нам. Может ли конечная часть быть просто mydomain\.com? - person Shc Final Judgement; 14.08.2015
comment
Что-то, что сочетает в себе ^(From:) и @(mydomain)\.com$ - person Shc Final Judgement; 14.08.2015
comment
Это похоже на то, что это сработает? ^(From:).*@(mydomain)\.com(\W)$ - person Shc Final Judgement; 14.08.2015
comment
@Shc Окончательное решение Обновлен ответ. Дайте мне знать, если это поможет - person Md. Mohsin; 14.08.2015
comment
Еще раз спасибо, доктор Мохсин! Я не уверен, но я думаю, что версия регулярного выражения, используемая Google, немного отличается. В вашем коде больше косых черт, чем мне нужно. В конце концов, кажется, что этот ^(From:).*@(mevion)\.com(\W) улавливает все, но я все равно ценю ваш вклад! - person Shc Final Judgement; 15.08.2015

Для нас это работает. Спасибо всем, кто помог!

^(From:).*@(mevion)\.com(\W)
person Shc Final Judgement    schedule 17.08.2015