2017-06-25 17 views
0

機能が機能しなくなっています。私はmessage.textを検索する必要があります。 "、" each "、" found "、" found "、文字列内の"、 "の位置を取得する必要があります。例えば、23232,111,02020332,12は、 "、"が位置する(インデックス)の6/10/19を返します。私のコードは、最初の最初のインデックスを見つけるが、その後、6 6 6 6を繰り返し、任意の助けていただきありがとうございますありがとう。VB.NETは、文字列内の文字の位置を取得します(インデックスの)

HERESに私のコード:

For Each i As Char In message.Text 
     If message.Text.Contains(",") Then 
      Dim data As String = message.Text 
      Dim index As Integer = System.Text.RegularExpressions.Regex.Match(data, ",").Index 
      commas.AppendText(index & " ") 
     End If 
    Next 

答えて

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。

0

ちょうど私はまた、インデックスが(+1がm.Indexに追加された理由である)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 

を使用しています。後でこれらの値が特定のコンマの位置を示すために必要な場合は、1だけずれている可能性があり、実際の文字列より大きなインデックスにアクセスしようとする可能性があります。

関連する問題