diff --git a/runelite-client/src/main/java/net/runelite/client/util/WildcardMatcher.java b/runelite-client/src/main/java/net/runelite/client/util/WildcardMatcher.java index 354005a048..2421010fb5 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/WildcardMatcher.java +++ b/runelite-client/src/main/java/net/runelite/client/util/WildcardMatcher.java @@ -45,7 +45,7 @@ public class WildcardMatcher } else { - matcher.appendReplacement(buffer, "\\\\Q" + matcher.group(0) + "\\\\E"); + matcher.appendReplacement(buffer, Matcher.quoteReplacement(Pattern.quote(matcher.group(0)))); } } diff --git a/runelite-client/src/test/java/net/runelite/client/util/WildcardMatcherTest.java b/runelite-client/src/test/java/net/runelite/client/util/WildcardMatcherTest.java index 53b48a0755..5b1d09a264 100644 --- a/runelite-client/src/test/java/net/runelite/client/util/WildcardMatcherTest.java +++ b/runelite-client/src/test/java/net/runelite/client/util/WildcardMatcherTest.java @@ -39,5 +39,6 @@ public class WildcardMatcherTest assertFalse(matches("Abyssal whip", "Adamant dagger")); assertTrue(matches("rune*", "Runeite Ore")); assertTrue(matches("Abyssal whip", "Abyssal whip")); + assertTrue(matches("string $ with special character", "string $ with special character")); } } \ No newline at end of file