2

このJava APIから直接:

public boolean requireEnd()

さらに入力すると、正の一致が負の一致に変わる可能性がある場合に true を返します。

このメソッドが true を返し、一致が見つかった場合、入力が増えると一致が失われる可能性があります。このメソッドが false を返し、一致が見つかった場合、さらに入力すると一致が変更される可能性がありますが、一致が失われることはありません。一致が見つからない場合、requireEnd は意味がありません。

戻り値: さらに入力すると、正の一致が負の一致に変わる可能性がある場合は true。

オンラインで具体的な例を見つけることができませんでした。

誰かがその使用例を見せてもらえますか? 前もって感謝します。

4

2 に答える 2

1

requireEnd()、主にスキャナーの構築に使用されるマッチャーメソッドです。このメソッドは、一致が成功した
後にのみ意味を持ち、正規表現エンジンがその成功を達成するために入力の末尾の位置に依存したかどうかを示します。が返された場合、追加の入力が原因で試行が失敗した可能性があります。が返された場合、追加の入力によって成功の詳細が変更された可能性がありますが、成功が失敗に変わることはありませんでしたrequireEndtruefalse

その一般的な用途は、requireEndが true の場合、入力に関する決定をコミットする前に、より多くの入力を受け入れる必要があるということです。

例:
1.正規表現:\d+\b | [><]=? テキスト: '1234' 一致: ' 1234 '
requireEnd(): True
2.正規表現:\d+\b | [><]=? テキスト: '>=' 一致: ' >= '
requireEnd(): False

したがって、一般に、このメソッドのreturn値は、明確な決定を下す前により多くの入力が必要であることを意味します。 true

たとえば、現在の入力 (たとえば、対話型デバッガーでユーザーが入力している文字) が 1 文字の '<' である場合、次の文字が '=' であるかどうかを確認するのを待つのが最善です。次のトークンはLESS_THANまたはである必要がありますLESS_THAN_OR_EQUAL

于 2013-07-12T16:02:23.530 に答える