文字列の特定の場所で正規表現が一致するかどうかを調べたい。
例:
Regex r = new Regex("d");
string s = "abcdefg";
上記の例を使用して、位置、、およびでのマッチングが、、およびをそれぞれ与えるように、一致関数が正確に指定された場所にある場合にのみ一致を見つけるようにします。残念ながら、C# の方法では次のようになります。1
3
5
no match
match
no match
Regex.Match
r.Match(s, 1); // => match ("d")
r.Match(s, 3); // => match ("d")
r.Match(s, 5); // => no match
これは、Regex.Match
メソッドが最初の一致を前方検索するためだと理解していますが、部分文字列を作成せずにこの動作を防ぐにはどうすればよいですか?