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

标签 .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

我会用“,”(逗号)分隔字符串,但恐怕第三个参数中可能有逗号。如何拆分这个字符串?

最佳答案

您可以使用 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

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

关于.net - 如何在 VB.Net 中拆分复杂的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18855177/

相关文章:

string - Base64 字符串中的文件比原始文件占用更多空间

c# - 模拟 FindAsync 方法

c# - 二维数组。将所有值设置为特定值

c# - Puppeteer 启动后软件卡住

c# - 避免 InvalidOperationException : Collection was modified? 的最佳实践

sql - 如何检查 vb .net 项目中的 sql server 中是否存在数据库和表?

vb.net - 将每个嵌套转换为 linq

vb.net - 重写按钮上的 OnPaint - 字体不同

string - 绝对需要复制字符串的情况

比较 C 中的两个 uchar