0

以下は私のコードです

  Dim ReadTagdata As String = "Info,Reply:Axis 0, Channel G, Timestamp 2eff, SpecificID f00ba36d, CRC d01ed74e, ReadAddress 000a, Data: 7a7a 3433 3132 3334 3536 3738 3637 2c31 352c 302e 3036 2c2e 3930 2d31 2e32 322c 526f 756e 642c 462c 5653 322c 7665 7279 2067 6f6f 642c 676f 6f64 2c76 6572 7920 676f 6f64 2c6d 6564 6975 6d2c 4852 442c 3137 3530 3234 3837 3333 2c32 352d 4175 672d 3130 2c33 2e39 342c 332e 3932 2c32 2e38 322c 332e 3839 2c35 362c 3131 2e35 2c34 332c 6d65 6469 756d 2c70 6f69 6e74 6564 2c2c 2c2c 2c2c 4e2c 2c2c 2c2c 2c2c 2c2c"

    Dim Specificcol As MatchCollection = Regex.Matches(ReadTagdata, "SpecificID ([a-f0-9]{8})")
    For Each m As Match In Specificcol
        Dim g As Group = m.Groups(1)
        MsgBox(g.Value.ToString)
    Next


    Dim DataCol As MatchCollection = Regex.Matches(ReadTagdata, "Data: ([A-Za-z0-9\-]+) ", RegexOptions.IgnoreCase)
    For Each mdata As Match In DataCol
        Dim gdata As Group = mdata.Groups(1)
        Dim data As String = gdata.Value.ToString
        MsgBox(data)
    Next

上記のコードでは、正規表現を使用して ReadTagData 文字列からデータを取得しようとしていますが、次のコードでは、データの後に 1 つの値のみを取得できます:文字列、つまり7a7a ではなく、 " の後のすべての文字列が必要DATA:"文字列

Dim DataCol As MatchCollection = Regex.Matches(ReadTagdata, "Data: ([A-Za-z0-9-]+) ", RegexOptions.IgnoreCase)

前もって感謝します

4

1 に答える 1