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