2015-12-15 3 views
-4

Есть ли способ в vb.net получить имя пользователя с адреса электронной почты?Как получить строку перед определенным символом в строке

Например, у меня есть строковая переменная и она состоит из стоимости [email protected], здесь мне нужно получить имя пользователя т.е. tracywilly мой ожидается выход

Dim email_addr as string 
Dim usr as string 
email_addr = "[email protected]" 
+0

Поиск амперсанд, а затем с помощью подстроки? – Marged

+0

Эта проблема не будет достаточной для создания имени пользователя. Имя пользователя должно быть уникальным в вашем приложении, и если оба регистратора будут иметь адреса электронной почты 'tracywilly @ gmail.com' и' tracywilly @ example.com', они не должны иметь имя пользователя 'tracywilly'. После удаления конца адреса электронной почты вам нужно проверить, существует ли имя пользователя tracywilly и (если адрес электронной почты еще не связан с другой учетной записью пользователя/именем пользователя), добавьте числовой суффикс, такой как 'tracywilly1' и повторите проверку. и т. д. до тех пор, пока не будет найдено имя пользователя, которое не было использовано. –

+0

@MattWilko да, это была очевидная ошибка ;-) – Marged

ответ

4

Вы можете добиться этого с помощью split() или regex в VB .net

см следующие методы

с помощью функции split():

Function username(ByVal str As String) As String 
     Dim arStr As String() 
     arStr = str.Split("@") 
     username = arStr(0) 
     Return username 
    End Function 

с помощью regex:

Function username_1(ByVal str As String) As String 
    username_1 = System.Text.RegularExpressions.Regex.Match(str, "^.*?([email protected])").ToString 
    Return username_1 
End Function 

, как это работает?

Dim email_addr as string 
Dim usr as string 
email_addr = "[email protected]" 
usr = username(email_addr) 
usr = username_1(email_addr) 

Live Demo

+1

Спасибо за подробности, и это именно то, что я искал, да благословит Бог! –

Смежные вопросы