From f5b07e9c12e90cc675d20705ac37a70884c7b8c0 Mon Sep 17 00:00:00 2001 From: Rainnny7 Date: Thu, 6 Jun 2024 22:28:59 -0400 Subject: [PATCH] Fix punctuation being removed in the replacement --- .../profanity/processor/impl/VulgarityProcessor.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/API/src/main/java/me/braydon/profanity/processor/impl/VulgarityProcessor.java b/API/src/main/java/me/braydon/profanity/processor/impl/VulgarityProcessor.java index 3118b4b..556469c 100644 --- a/API/src/main/java/me/braydon/profanity/processor/impl/VulgarityProcessor.java +++ b/API/src/main/java/me/braydon/profanity/processor/impl/VulgarityProcessor.java @@ -19,6 +19,8 @@ import java.util.regex.Pattern; * @author Braydon */ public final class VulgarityProcessor extends TextProcessor { + private static final String PUNCTUATION_PATTERN = "[\\p{Punct}]*"; + /** * Patterns for profane words. */ @@ -63,8 +65,6 @@ public final class VulgarityProcessor extends TextProcessor { if (wordPatterns.isEmpty()) { populatePatterns(profanityList); } - content = content.replaceAll("\\p{Punct}", ""); // Replace punctuation - // Process single words in the content int offset = 0; for (Map.Entry entry : wordPatterns.entrySet()) { @@ -78,7 +78,7 @@ public final class VulgarityProcessor extends TextProcessor { int end = offset + matcher.end(); String matchedWord = matcher.group(); replacement.replace(start, end, Character.toString(replaceChar).repeat(matchedWord.length())); - offset += matchedWord.length() - (end - start); + offset+= matchedWord.length() - (end - start); } } @@ -124,9 +124,9 @@ public final class VulgarityProcessor extends TextProcessor { for (Character substitution : charSubstitutions.get(lowerChar)) { chars.append(substitution); } - obfuscatedWordRegex.append('[').append(chars).append("]+"); + obfuscatedWordRegex.append(PUNCTUATION_PATTERN + "[").append(chars).append("]+" + PUNCTUATION_PATTERN); } else { - obfuscatedWordRegex.append(lowerChar); + obfuscatedWordRegex.append(PUNCTUATION_PATTERN).append(lowerChar).append(PUNCTUATION_PATTERN); } }