Java RegEx replaceAll 抛出 ArrayIndexOutOfBoundsException

标签 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);

最佳答案

我不熟悉 Java 中的正则表达式,所以我会继续猜测,如果我离题太远,请原谅。在 PCRE (PHP) 中,$1 将引用第一个捕获组,因为您没有可能引发错误的捕获组。尝试使用 $0。

关于Java RegEx replaceAll 抛出 ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3364537/

相关文章:

c# - 使用正则表达式获取无前缀/无转义的文本

java - 我们如何通过java代码访问计算机的控制面板

python - 正则表达式以匹配除注释掉的图像 URL 之外的任何图像 URL

regex - 如何在复杂的golang正则表达式捕获中捕获多个组

java - 针对目标用户和组的 Azure 应用程序配置功能标记不起作用

r - 如何使用 grep 提取日期?我需要为每一个匹配 ", "、 "/"、 ". "、 "- "

javascript - 正则表达式 JS 模式 : 0. 000 - 1.600

java - 如何迭代以对象作为键并将 <objects> 设置为值的 HashMap 并打印两者?

java - 如何修复这个 NullPointerException?

java - 不推荐使用 QueryBuilder 类型中的方法 andProperty(String) - Javers