如何在VB.Net中拆分复杂的字符串

时间:2013-09-17 16:33:35

标签: .net vb.net string split

我有一个来自Javascript函数调用的参数字符串

ITQPopup('100',255,'2932 NTYwNDUwMTA0MDYzMDM);3094 V0FZ','-1909432577',0,0)

正如您所看到的,编码非常差,有6个参数被传递

'100'
255
'2932 NTYwNDUwMTA0MDYzMDM);3094 V0FZ'
'-1909432577'
0 
0

我会将字符串拆分为“,”(逗号),但我担心第3个参数中可能有逗号。怎么会分裂这个字符串?

3 个答案:

答案 0 :(得分:2)

删除括号的内容,将其包装在方括号中,并使用JSON库将其解析为数组。

答案 1 :(得分:2)

您可以使用RegEx轻松完成此操作。例如:

Dim input As String = "ITQPopup('100',255,'2932 NTYwNDUwMTA0MDYzMDM);3094 V0FZ','-1909432577',0,0)"
Dim pattern As String = "ITQPopup\('(.*?)',(.*?),'(.*?)','(.*?)',(.*?),(.*?)\)"
Dim m As Match = Regex.Match(input, pattern)
If m.Success Then
    Dim param1 As String = m.Groups(1).Value
    Dim param2 As String = m.Groups(2).Value
    Dim param3 As String = m.Groups(3).Value
    Dim param4 As String = m.Groups(4).Value
    Dim param5 As String = m.Groups(5).Value
    Dim param6 As String = m.Groups(6).Value
End If

如果需要,您可以进一步改进模式,以允许参数之间的空白等。但这是最简单的工作示例。

答案 2 :(得分:1)

您可以使用Split。

然后要检索您的参数,您只需将列表中的前2个元素作为前2个参数。

然后对最后3个参数执行相同操作。

然后可以连接剩下的所有剩余部分以提供第3个参数。