VB.NET获取字符串中的数字位置(索引)

时间:2017-06-25 05:23:18

标签: string vb.net indexing

我很难让功能正常工作。我需要搜索每个“,”找到的每个“,”的message.text,发现我需要得到“,”位于字符串中的数字位置。例如:23232,111,02020332,12它将返回6/10/19,其中“,”位于(索引)。我的代码找到了第一个的第一个索引,但随后重复了6 6 6 6,任何帮助都将不胜感激。

继承我的代码:

body {
    margin: 0;
}

2 个答案:

答案 0 :(得分:0)

你可以这样试试;实例化一个Regex对象,并在每次开始匹配的位置时递增(这种可能性不适用于静态方法Match)。

    Dim reg As New System.Text.RegularExpressions.Regex(",")
    Dim Index As Integer = reg.Match(data).Index
    Do While Index > 0
        commas.AppendText(index & " ")
        Index = reg.Match(data, Index + 1).Index
    Loop

p.s返回的索引从零开始

答案 1 :(得分:0)

只需使用Regex.Matches方法

    Dim message As String = "23232,111,02020332,12"
    Dim result As String = ""

    For Each m As Match In Regex.Matches(message, ",")
        result &= m.Index + 1 & " "
    Next

我还应该补充一点,索引是基于0的(这就是为什么+1被添加到m.Index)。如果您以后需要这些值指向特定逗号的位置,则可能会偏离1,并且可能会尝试访问大于实际字符串的索引。