Regex для удаления адреса электронной почты (точки и + символы подстановки) - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь написать регулярное выражение для удаления субадресации gmail, то есть: убрать точки и + что-либо из адресов gmail.

например: e.m.a..i.laddress+wha.t+e..ver@gmail.com -> emailaddress@gmail.com

  • все точки до@ должен исчезнуть.
  • все от первого + до @ должно исчезнуть.

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

=concat(replace(REGEXREPLACE(left(A1,find("@",A1)-1),"\.",""),find("+",REGEXREPLACE(left(A1,find("@",A1)-1),"\.","")),len(REGEXREPLACE(left(A1,find("@",A1)),"\.",""))-find("+",REGEXREPLACE(left(A1,find("@",A1)-1),"\.","")),""),right(A1,len(A1)-find("@",A1)+1))

Доменная часть должна оставаться неизменной.

1 Ответ

0 голосов
/ 31 января 2019

Вот моя попытка: (\.(?=[^@]*?@)|\+[^@]*?(?=@))
Вы можете увидеть рабочую демонстрацию здесь .
Выражение соответствует всему, что вы хотите удалить.Он использует прогнозирование с произвольными квантификаторами - я надеюсь, что используемый вами механизм регулярных выражений поддерживает это.
Может быть, есть решение и без них, но сейчас я могу предложить это.

РЕДАКТИРОВАТЬ: я изменил выражениетак что он больше не использует зло .*?.

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