私はインデックスで部分文字列を見つけるプログラムを持っています。例えば、 "Yes no yes no"で "no"を検索すると、最初の "no"の文字インデックスであるが返されます。部分文字列のインスタンスをすべて検索するには?
複数の出現を特定したいと思います。たとえば、上記の例では、と(他のオカレンスのインデックス)が返されます。
私はインデックスで部分文字列を見つけるプログラムを持っています。例えば、 "Yes no yes no"で "no"を検索すると、最初の "no"の文字インデックスであるが返されます。部分文字列のインスタンスをすべて検索するには?
複数の出現を特定したいと思います。たとえば、上記の例では、と(他のオカレンスのインデックス)が返されます。
IndexOfには、これに使用できる一連のオーバーロードがあります。
Dim str = "Yes No Yes No"
str.IndexOf("No", 6)
これは、文字6からの検索を開始します。ただし、代わりに正規表現を使用するように誘惑されます。あなたは、さらにあなたのルールを拡張する必要がある場合
Dim regex As New System.Text.RegularExpressions.Regex("No")
For Each match As RegularExpressions.Match In regex.Matches(str)
Console.WriteLine("Match found @ {0}", match.Index)
Next
この
は、あなたのマッチングのより多くの制御を与えるだろうし、IMOは、より明確なインタフェースを提供します。うわー、ありがとう。前にこれを使用していないので、正規表現にいくつかの研究をする必要があります。ありがとうございました –
私はhttp://www.regular-expressions.info/の読んだビットを持っていることをお勧めしますが、彼らが実際に行動するのを見るためにhttp://regexr.com/で遊ぶこともあります。 – FloatingKiwi
明確化された表現と例。 – Prune