RegEx - Поиск электронных писем внутри файла журнала - PullRequest
1 голос
/ 12 мая 2009

Я ищу регулярное выражение, которое будет проверять совпадения со строкой, такой как:

mxtreme1.log: 12 мая 07:00:00 10.1.1.175 postfix / cleanup [48145]: C2C9FFA730: полное имя =, sender=LOGINNAME@company.com, от =LOGINNAME@company.com, rece=LOGINNAME@company.com, предыдущая =, as_score = 0, as_strategy = M, код = W, действия = FFFFFFFFFFFTFFFFFFFFFF, анализ = F000FFF000TTT000F000TFT000000TTSS3000059900033-F1F-FFF00000000FF00000000FF00000000FF00000000000000000000000000000000000000000000000000000000F

, где вся часть, выделенная жирным шрифтом, совпадает, но LOGINNAME может содержать любое количество случайных символов.

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

Ответы [ 5 ]

2 голосов
/ 12 мая 2009

Чтобы протестировать все вышеперечисленные решения, мне лично нравится использовать 'Regex Coach'

Просто поищите в Google эту строку и это бесплатное программное обеспечение, которое хорошо мне помогло.

PS: я не владею и не проявляю особого интереса к продукту или команде, которая его создала.

2 голосов
/ 12 мая 2009

Это было бы что-то вроде:

sender=[^@]+@company\.com

(Вы явно указали, что только часть LOGINNAME будет переменной.)

1 голос
/ 12 мая 2009

Я почти уверен, что запятая недействительна внутри адреса электронной почты, поэтому до тех пор, пока она всегда будет иметь запятую, вы сможете получить ее с помощью:

/(sender=[^,]+?),/
0 голосов
/ 12 мая 2009

Вы можете попробовать это:

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$

Но посмотрите на этот пост , чтобы понять, почему RegEx и адреса электронной почты проблематичны.

Также это добавить SENDER =:

^[\w]+=[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$
0 голосов
/ 12 мая 2009

Вот регулярное выражение для адресов электронной почты в соответствии с RFC2822 .

Это удивительно долго, но адреса электронной почты могут быть более сложными, чем вы можете ожидать.

Просто добавьте префикс /sender\s*=\s*/, чтобы получать только электронные письма отправителя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...