Проверка идентификатора электронной почты с использованием Regex в С#

У меня есть строка ввода («Мой идентификатор электронной почты — abc @ gmail.com»). Из входной строки мне нужно проверить идентификатор электронной почты с помощью Regex и заменить его на (xxxxxxx).

Я использую приведенный ниже шаблон, но он не работает, если идентификатор электронной почты содержит пробел.

\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*

Спасибо.


person Jyoti Sahu    schedule 20.09.2013    source источник


Ответы (1)


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

 //    (?=\\s*\\w)[\\w\\s]+(?:[-+.'](?=\\s*\\w)[\\w\\s]+)*@(?=\\s*\\w)[\\w\\s]+(?:[-.](?=\\s*\\w)[\\w\\s]+)*\\.(?=\\s*\\w)[\\w\\s]+(?:[-.](?=\\s*\\w)[\\w\\s]+)*

 (?= \s* \w )
 [\w\s]+ 
 (?:
      [-+.'] 
      (?= \s* \w )
      [\w\s]+ 
 )*
 @
 (?= \s* \w )
 [\w\s]+ 
 (?:
      [-.] 
      (?= \s* \w )
      [\w\s]+ 
 )*
 \.
 (?= \s* \w )
 [\w\s]+ 
 (?:
      [-.] 
      (?= \s* \w )
      [\w\s]+ 
 )*
person Community    schedule 20.09.2013