方法 : Visual Basic で電子メール アドレスを解析する
更新 : 2007 年 11 月
電子メール アドレスを解析するための簡単な正規表現を次の例に示します。
使用例
この例で使用されている正規表現、(\S+)@([^\.\s]+)(?:\.([^\.\s]+))+ は次の意味を持ちます。
1 つ以上の (キャプチャされた) 空白ではない文字の後に、以下の順番で文字が続く
"@" の文字
1 つ以上の空白でもピリオドでもない (キャプチャされた) 文字
以下の順で 1 つ以上の文字が続く
"." の文字
1 つ以上の空白でもピリオドでもない (キャプチャされた) 文字。
正規表現の Match メソッドは、入力文字列のどの部分が正規表現と一致するかに関する情報が格納された Match オブジェクトを返します。
''' <summary>
''' Parses an e-mail address into its parts.
''' </summary>
''' <param name="emailString">E-mail address to parse.</param>
''' <remarks> For example, this method displays the following
''' text when called with "someone@mail.contoso.com":
''' User name: someone
''' Address part: mail
''' Address part: contoso
''' Address part: com
''' </remarks>
Sub ParseEmailAddress(ByVal emailString As String)
Dim emailRegEx As New Regex("(\S+)@([^\.\s]+)(?:\.([^\.\s]+))+")
Dim m As Match = emailRegEx.Match(emailString)
If m.Success Then
Dim output As String = ""
output &= "User name: " & m.Groups(1).Value & vbCrLf
For i As Integer = 2 To m.Groups.Count - 1
Dim g As Group = m.Groups(i)
For Each c As Capture In g.Captures
output &= "Address part: " & c.Value & vbCrLf
Next
Next
MsgBox(output)
Else
MsgBox("The e-mail address cannot be parsed.")
End If
End Sub
この例では、Imports ステートメントを使用して System.Text.RegularExpressions 名前空間をインポートする必要があります。詳細については、「Imports ステートメント (.NET 名前空間および型)」を参照してください。
参照
処理手順
方法 : 文字列が有効な電子メール形式であるかどうかを検証する