Использование StringSplitOptions для получения списка слов VB.NET - PullRequest
0 голосов
/ 22 января 2020

пытается получить список писем из RichTextBox, чтобы быть в списке.

поэтому я использовал (для каждого, StringSplitOptions, чтобы разделить полный текст)

Richtextbox: "one@gmail.com two@yahoo.com three@hotmail.com вот и все"

Код

 For Each str As String In RichTextBox1.Text.Split(New String() {"@"}, StringSplitOptions.None)

        ListBox1.Items.Add(str.Substring(str.LastIndexOf(" ") + 1))

 Next

результат в списке:

один

два

три

все

1 Ответ

1 голос
/ 22 января 2020

если вы ищете на "@ Gmail.com", вы можете изменить l oop на целое

для i = 0 на Length - 1 и использовать подстроку

(str.substring (str.indexof (""), str.indexof (".com")) или просто добавьте +@gmail.com

Ну, это нормально, потому что вы получаете расщепления @, поэтому вам нужно использовать Regex

но в этом случае вы найдете все почтовые форумы, поэтому я рекомендовал, чтобы получить действительный список адресов электронной почты, поиск (@ и также.), Который содержит список адресов электронной почты.

Dim reg As Regex = New Regex("(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@" &
               "((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\." &
               "([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|" &
                "([a-zA-Z]+[\w-]+\.)+[a-zA-Z]{2,4})", RegexOptions.Compiled Or RegexOptions.IgnoreCase)

    For Each email As Match In reg.Matches(RichTextBox1.Text)
        ListBox1.Items.Add(email.Value.ToString())
    Next

MessageBox.Show("Done")

Надеюсь, это сработает

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