10

java.util.regex.Matcher.hitEnd()C#正規表現に相当するものはありますか?

の Javadoc boolean hitEnd():

このマッチャーによって実行された最後の一致操作で検索エンジンによって入力の末尾がヒットされた場合、true を返します。このメソッドが true を返す場合、さらに多くの入力が最後の検索の結果を変更した可能性があります。

@return true 最後のマッチで入力の最後にヒットした場合。それ以外の場合は false

hitEndへのその他の参照

4

3 に答える 3

2

終わりに達したかどうかを知るには -

(\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
于 2019-09-13T21:16:58.613 に答える