Java 关于Required Matcher'的澄清;s法

Java 关于Required Matcher'的澄清;s法,java,regex,methods,Java,Regex,Methods,直接从java API: 公共布尔Required() 如果更多输入可以将正匹配更改为正匹配,则返回true 负一 如果此方法返回true,并且找到匹配项,则需要更多输入 可能会导致比赛失败。如果此方法返回false和 找到匹配项,则更多输入可能会更改匹配项,但匹配项 不会迷路的。如果未找到匹配项,则Required没有 意思 返回: 如果输入更多,则可能会将正匹配变为负匹配 我在网上找不到任何具体的例子 有人能给我举一个使用它的例子吗? 提前感谢。requireEnd()是一种主要用于构建扫描

直接从java API:

公共布尔Required()

如果更多输入可以将正匹配更改为正匹配,则返回true 负一

如果此方法返回true,并且找到匹配项,则需要更多输入 可能会导致比赛失败。如果此方法返回false和 找到匹配项,则更多输入可能会更改匹配项,但匹配项 不会迷路的。如果未找到匹配项,则Required没有 意思

返回: 如果输入更多,则可能会将正匹配变为负匹配

我在网上找不到任何具体的例子

有人能给我举一个使用它的例子吗? 提前感谢。

requireEnd()是一种主要用于构建扫描仪的匹配方法。
此方法仅在成功匹配后才有意义,它指示正则表达式引擎是否依赖输入端的位置来实现该成功。如果
requireEnd
返回
true
,则额外的输入可能导致尝试失败。如果返回
false
,则其他输入可能会更改成功的详细信息,但不可能将成功变为失败

它的常见应用是,如果
requireEnd
为true,则在提交关于输入的决定之前,应该接受更多的输入

示例:

1. Regex
\d+\b |[>让我们举一个简单的例子:

public static void main(final String... args)
{
    final Pattern p = Pattern.compile("cat$");

    final Matcher m = p.matcher("I have a cat");
    m.find(); // finds a match
    System.out.println(m.requireEnd()); // prints true
}

ReEX在结尾有一个锚;文档说明如果输入更多,则“[…]可能导致匹配丢失”。确实。考虑这个输入:

"I have a catflap"
这里的正则表达式不再匹配:匹配失败


如果现在我们用
“cat”
替换
“cat$”
,那么
.requireEnd()
将返回
false
:使用上面的输入,
cat
仍将由正则表达式引擎进行匹配。

您可以提到从何处获得这些值……因此基本上,它只需检查模式末尾是否有$?不仅仅是一个
$
;导致匹配限制在en处的任何锚的组合d、 例如,一个词锚,或者一个先行词。