Java RegEx replaceAll抛出ArrayIndexOutOfBoundsException

Ian*_*ink 2 java regex

我正在尝试用Java在HTML中用一些标记来包围一个单词.调用replaceAll时,此代码抛出ArrayIndexOutOfBoundsException.

Pattern pattern = Pattern.compile(wordToHighlight + "\\w{0,5}");
String replacement = "<span class='highlight'>$1</span>";
Matcher matcher = pattern.matcher(html);

if (matcher != null)
    if (matcher.find())
        retVal = matcher.replaceAll(replacement);
Run Code Online (Sandbox Code Playgroud)

Pet*_*han 5

我不熟悉Java中的Regex,所以我会继续猜测一下,如果我离开基地的话,请原谅.在PCRE(PHP)中,1美元将引用第一个捕获组,因为您没有可能引发错误的捕获组.尝试使用$ 0.