捕获括号是否会影响单独的负面预测?

use*_*359 8 java regex

我正在使用Java.我有以下文字:

"hyst and hy"
Run Code Online (Sandbox Code Playgroud)

为什么(hy)(?![az])返回两个"hy".这个想法是匹配az之间没有任何字符的任何"hy".

如果我做HY(?![AZ])(HY没有括号),它的工作原理(只找到第二个"HY"),但我不明白为什么,如果我在正则表达式中使用括号(HY)它的第一个"HY匹配"在hyst

Cas*_*yte 3

当您使用捕获组时,您会获得两个结果,第一个是整个模式,第二个是捕获组。第一个hy从未匹配过。

如果删除括号,您将仅获得与整个模式匹配的内容。