адрес электронной почты и имя preg match от до - PullRequest
0 голосов
/ 18 ноября 2009

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

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

 - jon435@hotmail.com
 - james jon435@hotmail.com
 - "James Jordan" <jon435@hotmail.com> (gmail format)
 - janne - jon44@hotmail.com (possible format)

Ответы [ 2 ]

3 голосов
/ 18 ноября 2009

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

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

Доказательство, что я не сумасшедший.

0 голосов
/ 18 ноября 2009

Если у вас есть только эти строки, потребуется больше работы, чем простое регулярное выражение. Например, ваш первый пример не включает полное имя, это всего лишь электронная почта, поэтому вам придется использовать API Microsoft Live ID для получения этой информации ... и это оказывается действительно сложным.

Что именно вы пытаетесь сделать? Возможно, есть другой способ?

...