From cde516cbe7011c29aa2dc276bbe37edafbc743d1 Mon Sep 17 00:00:00 2001 From: Looly Date: Mon, 9 Feb 2026 09:14:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D`ReUtil.replaceAll`=E7=A9=BA?= =?UTF-8?q?=E6=8C=87=E9=92=88=E9=97=AE=E9=A2=98=EF=BC=88issue#IDPHVW@Gitee?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/hutool/v7/core/regex/ReUtil.java | 2 +- .../src/test/java/cn/hutool/v7/core/regex/ReUtilTest.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/hutool-core/src/main/java/cn/hutool/v7/core/regex/ReUtil.java b/hutool-core/src/main/java/cn/hutool/v7/core/regex/ReUtil.java index 0802fe04ec..d1c7235cf1 100644 --- a/hutool-core/src/main/java/cn/hutool/v7/core/regex/ReUtil.java +++ b/hutool-core/src/main/java/cn/hutool/v7/core/regex/ReUtil.java @@ -915,7 +915,7 @@ public class ReUtil { String replacement = replacementTemplate; for (final String var : varNums) { final int group = Integer.parseInt(var); - replacement = replacement.replace("$" + var, matcher.group(group)); + replacement = StrUtil.replace(replacement, "$" + var, matcher.group(group)); } matcher.appendReplacement(sb, escape(replacement)); result = matcher.find(); diff --git a/hutool-core/src/test/java/cn/hutool/v7/core/regex/ReUtilTest.java b/hutool-core/src/test/java/cn/hutool/v7/core/regex/ReUtilTest.java index 05162d9ddc..502a9ef666 100644 --- a/hutool-core/src/test/java/cn/hutool/v7/core/regex/ReUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/v7/core/regex/ReUtilTest.java @@ -251,4 +251,10 @@ public class ReUtilTest { s = ReUtil.get(PatternPool.EMAIL, mail, 0); assertEquals("a.b@Hutool.cn", s); } + + @Test + void issueIDPHVWTest(){ + final String s = ReUtil.replaceAll("2 倾斜摄影成果", "(^\\d+(\\.\\d+)*)(\\s)(((.*?)(DEM|DOM)?)([(|\\(](.*?)[)|\\)])?$)", "$1$3$5($9)"); + assertEquals("2 倾斜摄影成果()", s); + } }