J'essaie de diviser ce qui suit en deux chaînes.
"SERVER1.DOMAIN.COM Running"
Pour cela, j'utilise le code.
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
Cela fonctionne très bien et j'obtiens deux boîtes de message avec "SERVER1.DOMAIN.COM"
et "Running"
.
Le problème que j'ai est que certaines de mes chaînes initiales ont plus d'un espace.
"SERVER1.DOMAIN.COM Off"
Il y a environ huit espaces entre ".COM" et "Off".
Comment puis-je séparer cette chaîne de la même manière?
Essaye ça
Dim array As String() = strtemp.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
Utilisez de cette façon:
Dim line As String = "SERVER1.DOMAIN.COM Running"
Dim separators() As String = {"Domain:", "Mode:"}
Dim result() As String
result = line.Split(separators, StringSplitOptions.RemoveEmptyEntries)
Voici une méthode utilisant la classe 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
Et la manière LINQ de le faire:
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