Imports System.Text.RegularExpressions
Module Module1
Private r As Regex = New Regex( _
"^N(?:;(?!CHARSET=UTF-8)[^:]*|)(?:;CHARSET=UTF-8|):(?<strSurname>[^;\n\r]*);?(?<strGivenName>[^;\n\r]*);?(?<strMidName>[^;\n\r]*);?(?<strPrefix>[^;\n\r]*);?(?<strSuffix>[^;\n\r]*)", _
RegexOptions.IgnoreCase Or RegexOptions.Multiline)
Sub Main()
Dim s As String = "BEGIN:VCARD" + System.Environment.NewLine + _
"VERSION:2.1" + System.Environment.NewLine + _
"N:Bacon;Kevin;Francis;Mr.;Jr." + System.Environment.NewLine + _
"FN: Mr. Kevin Francis Bacon Jr." + System.Environment.NewLine + _
"ORG:Movies.com"
Dim m As Match = r.Match(s)
If (m.Success) Then
Console.WriteLine(m.Groups("strSurname").Value)
Console.WriteLine(m.Groups("strGivenName").Value)
Console.WriteLine(m.Groups("strMidName").Value)
Console.WriteLine(m.Groups("strPrefix").Value)
Console.WriteLine(m.Groups("strSuffix").Value)
End If
End Sub
End Module
SW1wb3J0cyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnMKCk1vZHVsZSBNb2R1bGUxCiAgUHJpdmF0ZSByIEFzIFJlZ2V4ID0gTmV3IFJlZ2V4KCBfCiAgICAiXk4oPzo7KD8hQ0hBUlNFVD1VVEYtOClbXjpdKnwpKD86O0NIQVJTRVQ9VVRGLTh8KTooPzxzdHJTdXJuYW1lPlteO1xuXHJdKik7Pyg/PHN0ckdpdmVuTmFtZT5bXjtcblxyXSopOz8oPzxzdHJNaWROYW1lPlteO1xuXHJdKik7Pyg/PHN0clByZWZpeD5bXjtcblxyXSopOz8oPzxzdHJTdWZmaXg+W147XG5ccl0qKSIsIF8KICAgIFJlZ2V4T3B0aW9ucy5JZ25vcmVDYXNlIE9yIFJlZ2V4T3B0aW9ucy5NdWx0aWxpbmUpCiAgU3ViIE1haW4oKQogICAgRGltIHMgQXMgU3RyaW5nID0gIkJFR0lOOlZDQVJEIiAgICAgICAgICAgICAgICAgICAgICsgU3lzdGVtLkVudmlyb25tZW50Lk5ld0xpbmUgKyBfCiAgICAgICAgICAgICAgICAgICAgICAiVkVSU0lPTjoyLjEiICAgICAgICAgICAgICAgICAgICAgKyBTeXN0ZW0uRW52aXJvbm1lbnQuTmV3TGluZSArIF8KICAgICAgICAgICAgICAgICAgICAgICJOOkJhY29uO0tldmluO0ZyYW5jaXM7TXIuO0pyLiIgICArIFN5c3RlbS5FbnZpcm9ubWVudC5OZXdMaW5lICsgXwogICAgICAgICAgICAgICAgICAgICAgIkZOOiBNci4gS2V2aW4gRnJhbmNpcyBCYWNvbiBKci4iICsgU3lzdGVtLkVudmlyb25tZW50Lk5ld0xpbmUgKyBfCiAgICAgICAgICAgICAgICAgICAgICAiT1JHOk1vdmllcy5jb20iCiAgICBEaW0gbSBBcyBNYXRjaCA9IHIuTWF0Y2gocykKICAgIElmIChtLlN1Y2Nlc3MpIFRoZW4KICAgICAgQ29uc29sZS5Xcml0ZUxpbmUobS5Hcm91cHMoInN0clN1cm5hbWUiKS5WYWx1ZSkKICAgICAgQ29uc29sZS5Xcml0ZUxpbmUobS5Hcm91cHMoInN0ckdpdmVuTmFtZSIpLlZhbHVlKQogICAgICBDb25zb2xlLldyaXRlTGluZShtLkdyb3Vwcygic3RyTWlkTmFtZSIpLlZhbHVlKQogICAgICBDb25zb2xlLldyaXRlTGluZShtLkdyb3Vwcygic3RyUHJlZml4IikuVmFsdWUpCiAgICAgIENvbnNvbGUuV3JpdGVMaW5lKG0uR3JvdXBzKCJzdHJTdWZmaXgiKS5WYWx1ZSkKICAgIEVuZCBJZgogIEVuZCBTdWIKRW5kIE1vZHVsZQ==