Разделить строку на VB.NET

Я пытаюсь разделить на следующие две строки.

"SERVER1.DOMAIN.COM Running"

для этого я использую код.

Dim Str As String = "SERVER1.DOMAIN.COM Running"
Dim strarr() As String
strarr = Str.Split(" ")
For Each s As String In strarr
    MsgBox(s)
Next

это отлично работает, и я получаю два окна сообщений с "SERVER1.DOMAIN.COM" и "Running".

проблема в том, что некоторые из моих начальных строк имеют более одного пробела.

"SERVER1.DOMAIN.COM        Off"

есть около восьми пробелов между ними ".COM " и "Off".

как я могу разделить эту строку таким же образом?

3 ответов


попробуй такое

Dim array As String() = strtemp.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)

использовать таким образом:

Dim line As String = "SERVER1.DOMAIN.COM Running"
Dim separators() As String = {"Domain:", "Mode:"}
Dim result() As String
result = line.Split(separators, StringSplitOptions.RemoveEmptyEntries)

вот метод, использующий класс Regex:

    Dim str() = {"SERVER1.DOMAIN.COM Running", "mydomainabc.es     not-running"}
    For Each s In str
        Dim regx = New Regex(" +")
        Dim splitString = regx.Split(s)
        Console.WriteLine("Part 1:{0}  |  Part 2:{1}", splitString(0), splitString(1))
    Next

и способ LINQ сделать это:

    Dim str() = {"SERVER1.DOMAIN.COM Running", "mydomainabc.es     not-running"}
    For Each splitString In From s In str Let regx = New Regex(" +") Select regx.Split(s)
        Console.WriteLine("Part 1:{0}  |  Part 2:{1}", splitString(0), splitString(1))
    Next