[英]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.