2013-09-30 4 views
-2

Я пытаюсь использовать Regex, чтобы получить название компании из адреса электронной почты. Я рассылаю письмо два раза. Есть ли лучшее решение для этого?Regex для разделения адреса электронной почты между двумя символами @ и.

c = "[email protected]_name.com" 
(c.split("@").last).split(".").first 
+0

Так что вы хотите домен верхнего уровня? – sawa

ответ

1
  1. Ответ на вопрос в посте (до того, как было отредактировано)

    Судя из вашего кода, кажется, что вы хотите, чтобы извлечь домен верхнего уровня (хотя это противоречит названию , что не имеет смысла). Предположим, что это даст вам домен верхнего уровня.

    "[email protected]_name.com"[/[^.]+\z/] 
    # => "com" 
    
  2. Решение другой проблемы, что OP дополнительно упоминается в комментарии к этому ответу

    "[email protected]_name.com"[/(?<[email protected])[^.]+/] 
    # => "company_name" 
    
+0

Мне нужно имя_компании из этого письма .. спасибо – Oatmeal

+0

любая рекомендация по изучению регулярного выражения exp – Oatmeal

+0

Одной из незначительных проблем является электронная почта с субдоменом. '' [email protected]_name.com "[/(?<[email protected])[^.]+/]' приведет к _department_ вместо _company_name_. Если вы знаете, что у вас есть действующий адрес электронной почты, вы можете использовать строку split следующим образом: '' [email protected]_name.com .split ("@") [1] .split (".") [- 2] '. У этого, однако, есть еще одна проблема: что, если вы получили это 'user @ schoolname.schools.county.nl'? _County_ - это не название школы/компании. Лучший вариант: введите поле для заполнения, чтобы пользователь мог выбрать. – leifcr

1

Это даст вам название компании.

(.*)@(\w+)\.(.*) 
Смежные вопросы