私の目標は、テキスト内の特定のパターンに一致するものをすべて見つけることです。私のパターンは次のとおりです。
h.*o
これは、で始まり、その間に任意の数の文字がある(ゼロでもある)テキストを検索していることを意味し'h'
ます'o'
。
私の理解では、メソッドMatches()
は説明に従って複数の一致を提供するということでした ( MSDNを参照)。
const string input = "hello hllo helo";
Regex regex = new Regex("h.*o");
var result = regex.Matches(input);
foreach (Match match in result)
{
Console.WriteLine(match.Value);
}
私の期待は次のとおりです。
1. "hello"
2. "hllo"
3. "helo"
4. "hello hllo"
5. "hello hllo helo"
驚いたことに、返された一致には 1 つの文字列 (入力文字列全体) しか含まれていません。
"hello hllo helo"
質問:
- どちらが間違っていますか: 私の期待、私の正規表現、またはクラスの使用法?
- 私の例に示すように結果を達成するにはどうすればよいですか?
前もって感謝します。