Угадай имя из электронной почты - PullRequest
4 голосов
/ 29 ноября 2009

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

Например, "john.smith@whoever.com" должен давать "John Smith".

Выполнение этого не должно быть слишком сложным (удаление имени домена, удаление специальных символов, использование заглавных букв и т. Д.), Но я уверен, что для этого должен существовать код.

Код на Ruby предпочтительнее, но подойдет любой другой язык.

Ответы [ 6 ]

5 голосов
/ 29 ноября 2009
def email_to_name(email)
  name = email[/[^@]+/]
  name.split(".").map {|n| n.capitalize }.join(" ")
end

p email_to_name("john.smith@foo.com")
# => "John Smith"

Это такая простая задача, что я сомневаюсь, что вы найдете какой-либо "существующий код", делающий это.

1 голос
/ 29 ноября 2009

Gmail использует адрес электронной почты в стиле конверта, одно из расширений rfc-822. Так что он только догадывается, если адрес электронной почты находится в форме envolope, как это: Terry Terribad <terry@example.org>.

Для gmail это всего лишь попытка выяснить, что происходит перед <>, путем анализа электронной почты и общего предположения.

В противном случае на самом деле нет никакого способа предположить, что меня зовут Чак Возе из моего адреса электронной почты, поскольку я не использую chuck.vose или что-то в этом роде.

1 голос
/ 29 ноября 2009

Регулярное выражение ниже должно решить вашу проблему

/(\w+)[._-](\w+)@.+/
0 голосов
/ 29 ноября 2009

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

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

И очень большой словарь общих имен и фамилий, потому что не все адреса электронной почты будут так хорошо соотноситься с реальными именами.

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

Мне, правда, интересно, почему вы хотите это сделать.

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

Регулярные выражения , вероятно, путь.

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