Vb.net 使用string.split时如何正确转义双引号

Vb.net 使用string.split时如何正确转义双引号,vb.net,string,Vb.net,String,Dim mystring as string=“myintref=”567”Mynewref=“345”“ 我想在每个引号处拆分我的字符串,这样我就可以得到: myintref= 567 Mynewref= 345 都不是 Dim splitstring as string() = mystring.Split(""") 或 看来有用。有什么建议吗?(vs2015,vb.net v14)要在vb中转义双引号,只需使用两个连续的双引号字符。所以你可以这样做: Dim mystring As

Dim mystring as string=“myintref=”567”Mynewref=“345”“

我想在每个引号处拆分我的字符串,这样我就可以得到:

myintref= 567

Mynewref= 345
都不是

Dim splitstring as string() = mystring.Split(""")


看来有用。有什么建议吗?(vs2015,vb.net v14)

要在vb中转义双引号,只需使用两个连续的双引号字符。所以你可以这样做:

Dim mystring As String = " myintref=""567"" Mynewref=""345"" "
Dim mystrings = mystring.Split(""""c)
这将导致在双引号字符处拆分字符串:


拆分该字符串后,您希望有2个或4个元素吗

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim strLine As String = " myintref=" & """" & "567" & """" & " Mynewref=" & """" & "345" & """" & " "
    Debug.WriteLine("Original: " & strLine)
    Dim strAry As String() = strLine.Split({""""c})
    For i As Int32 = 0 To strAry.Length - 1
        Debug.WriteLine(strAry(i))
    Next
End Sub
给我这个输出:

Original:  myintref="567" Mynewref="345" 
 myintref=
567
 Mynewref=
345

我认为VB通过使用两个连续的双引号来转义字符串文本中的双引号。类似于:
“这是一个“引用的”字符串”
谢谢您的编辑,但不是我想要的(我无法正确设置问题的格式)myintref=应该是一个拆分,567应该是下一个拆分,等等@David,如果您是指类似mystring.split(“”)的内容的话然后我试过了,它也不起作用。是您尝试拆分的字符串:myintref=“567”Mynewref=“345”如果您的字符串值严格限制,例如
Dim myString As string=“mysomething=”“value”“mysome2=”“value”“mysome3=”“value”“mysome4=”“value”“”
则使用空格字符进行拆分(
拆分(
)并删除双引号(
.Replace(chr(34),”)
)。但是,如果字符串格式与本例中的格式完全相同。谢谢David,但您误解了这个问题。我想以myintref=而不是“myintref=”结束,其余的都是一样的。我想使用“就像分裂一样,这就是问题的根源。@DomSinclair:我想你误解了弦是什么。这些拆分字符串都不包含双引号字符。它们用双引号括起来,因为它们是字符串。@DomSinclair正如David所建议的,显示的输出是正确的(在拆分没有引号的字符串时,您将看到相同的引号,只定义字符串元素的开始/结束)。无论如何,
Replace
似乎更适合执行您想要的操作。@David您的代码不完全正确。由于
选项严格限制了
(>非正式地被认为是SO的VB.NET帖子中更正的基本标准),所以它不会编译。通过依赖字符串,您正在使用一个字符的
拆分
重载。您应该充分定义字符变量(即,
“”“c
)或依赖不同的重载(例如,采用字符串数组的重载:
Split(New String(){“”},StringSplitOptions.None)
)。例如,将此代码精确转换为C#在任何情况下都不会编译。@varocabas:Fair-ough,answer-updated。我不需要经常使用VB,很明显:)@DomSinclair这和David@DomSinclair:出于好奇,这个答案的结果与我的答案的结果有何不同?本文中的代码更粗糙,但结果是相同的。我们都在使用
String.Split()
并得到相同的精确结果数组。@David你完全正确,我应该向你道歉。我已经相应地标出了你的答案。
Original:  myintref="567" Mynewref="345" 
 myintref=
567
 Mynewref=
345