VB 中的字符串解析

String parsing in VB

例如mystring为="53 54 41 52 54 00 00 01 53 54 41 52 54 00 01 02 53 54 41 52 54 01 02 03"

我想做的是每次找到 "53 54 41 52 54" 它都会捕获剩余的 3 个字节。所以,基于我上面的字符串示例,我想要如下结果

当它第一次找到53 54 41 52 54时,它会捕获00 00 01,然后, 当它找到第 2 个 53 54 41 52 54 时,它将捕获 00 01 02 然后,最后 当它找到第 3 个 53 54 41 52 54 时,它将捕获 01 02 03.

在 VB 中执行此操作的最佳方法是什么?

提前谢谢你。

感谢您的指导。

您不能使用正则表达式:

Dim r as New Regex("53 54 41 52 54 (?<b>\d\d \d\d \d\d)")

ForEach m as Match in r.Matches(mystring)
  MsgBox(m.Groups("b").Value)
Next m

正则表达式将寻找您想要的数字,然后获取随后的 3 对 \digits 并将它们捕获到名为 b 的组中您可以按照循环

中所示进行检索

另一种选择(不太简洁,但如果不熟悉正则表达式可能更容易阅读)选项是:

    Const myString As String = "53 54 41 52 54 00 00 01 53 54 41 52 54 00 01 02 53 54 41 52 54 01 02 03"
    Const myMatch As String = "53 54 41 52 54"
    Dim Results As New List(Of String)
    Dim i As Integer = 0
    Do While i >= 0 AndAlso i < myString.Length
        i = myString.IndexOf(myMatch, i)
        If i >= 0 Then
            Results.Add(myString.Substring(i + 15, 8))
            i += 9
        End If
    Loop