終わりに達したかどうかを知るには -
(\z)?
正規表現の最後、
または最後まで一致すると思われる正規表現の任意の場所に 追加するのと同じくらい簡単だと思います。
これは実行できる受動的なチェックであり
、他の構造に干渉することはありません。
C# の使用例を次に示します。
var str =
"Foo $var1 <br/>Yes\n" +
"......... <br/>\n" +
"......... <br/><br/>\n" +
"Foo $var2 <br/>Yes\n" +
"..........<br/>\n" +
"Yes..........<br/>\n" +
"..........<br/>\n" +
"YesYes";
var rx = new Regex(@"Yes(\z)?");
Match M = rx.Match(str);
while (M.Success)
{
bool bAtEnd = M.Groups[1].Success;
Console.WriteLine("Match = {0} , At end {1}", M.ToString(), bAtEnd);
M = M.NextMatch();
}
出力:
Match = Yes , At end False
Match = Yes , At end False
Match = Yes , At end False
Match = Yes , At end False
Match = Yes , At end True