VB.net - 如何使用"后跟空格作为分隔符来拆分字符串"

use*_*318 0 vb.net split space double-quotes

我有一个从xml文件返回的字符串,看起来与此类似

name1="test 1" name2="test2" name3="test 3"
Run Code Online (Sandbox Code Playgroud)

我想将其拆分为key = value的3个元素.我不能只使用空格分割,因为我的某些值可能包含空格,例如test 1.

所以,我想使用"在空格之前分割字符串.我已经尝试了很多变化但是无法找出正确的语法来指定我的分割字符是"后跟空格.例如,我已经尝试了text.split({""" "})但是返回的元素被"并且忽略了后面的空格".

这应该不是那么困难.有人可以用正确的语法帮助我吗?

com*_*ech 6

试试这个:

text.Split(New String() {""" "}, StringSplitOptions.RemoveEmptyEntries)
Run Code Online (Sandbox Code Playgroud)

更新

由于这将删除"除了最后一个元素之外的所有元素",因此在处理结果时需要考虑到这一点.

这是一个例子:

    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
Run Code Online (Sandbox Code Playgroud)

结果输出:

name1="test 1"
name2="test2"
name3="test 3"
Run Code Online (Sandbox Code Playgroud)