簡體   English   中英

VB.net-如何使用“”后跟一個空格作為分隔符來分割字符串

[英]VB.net - how to split a string using " followed by a space as a delimiter

我有一個從xml文件返回的字符串,看起來與此類似

name1="test 1" name2="test2" name3="test 3"

我想將其拆分為key = value的3個元素。 我不能只使用空格進行拆分,因為我的某些值可能包含空格,例如test 1。

因此,我想在空格前使用“”來分割字符串。我嘗試了多種變體,但無法找出正確的語法來指定我的分割字符是“”后跟一個空格。 例如,我嘗試了text.split({""" "})但是返回的元素被“”分割,而忽略了“”之后的空格。

應該不難。 有人可以幫我正確的語法嗎?

嘗試這個:

text.Split(New String() {""" "}, StringSplitOptions.RemoveEmptyEntries)

更新資料

由於這會刪除除最后一個元素之外的所有結尾字符“,因此在處理結果時需要考慮到這一點。

這是一個例子:

    Dim sValue As String = "name1=""test 1"" name2=""test2"" name3=""test 3"""

    Dim asValues As String() = sValue.Split(New String() {""" "}, StringSplitOptions.RemoveEmptyEntries)

    For Each sKVP As String In asValues
        If Not sKVP.EndsWith("""") Then
            sKVP &= """"
        End If
        Console.WriteLine(sKVP)
    Next

和結果輸出:

name1="test 1"
name2="test2"
name3="test 3"

您可以使用LINQ創建Dictionary(Of String, String)

Dim q = From item In value.Split({""" "}, StringSplitOptions.RemoveEmptyEntries)
        Select item.Split("="c)

Dim dict = q.ToDictionary(Function(i) (i(0)),
                          Function(i) (i(1)))

注意 :這不是安全的,如果有重復的鍵,您將得到一個異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM