Package org.miaixz.bus.core.text.dfa
Class Sensitive
java.lang.Object
org.miaixz.bus.core.text.dfa.Sensitive
敏感词工具类
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic booleancontainsSensitive(String text) 是否包含敏感词getFoundAllSensitive(String text) 查找敏感词,返回找到的所有敏感词getFoundAllSensitive(String text, boolean isDensityMatch, boolean isGreedMatch) 查找敏感词,返回找到的所有敏感词 密集匹配原则:假如关键词有 ab,b,文本是abab,将匹配 [ab,b,ab] 贪婪匹配(最长匹配)原则:假如关键字a,ab,最长匹配将匹配[a, ab]static FoundWordgetFoundFirstSensitive(String text) 查找敏感词,返回找到的第一个敏感词static void初始化敏感词树,使用逗号分隔每个单词static void初始化敏感词树static voidinit(Collection<String> sensitiveWords) 初始化敏感词树static voidinit(Collection<String> sensitiveWords, boolean isAsync) 初始化敏感词树static booleanisInited()static StringsensitiveFilter(String text) 处理过滤文本中的敏感词,默认替换成*static StringsensitiveFilter(String text, boolean isGreedMatch, SensitiveProcessor sensitiveProcessor) 处理过滤文本中的敏感词,默认替换成*static voidsetCharFilter(Predicate<Character> charFilter) 设置字符过滤规则,通过定义字符串过滤规则,过滤不需要的字符 当accept为false时,此字符不参与匹配
-
Field Details
-
DEFAULT_SEPARATOR
默认关键词分隔符- See Also:
-
-
Constructor Details
-
Sensitive
public Sensitive()
-
-
Method Details
-
isInited
public static boolean isInited()- Returns:
- 是否已经被初始化
-
init
初始化敏感词树- Parameters:
sensitiveWords- 敏感词列表isAsync- 是否异步初始化
-
init
初始化敏感词树- Parameters:
sensitiveWords- 敏感词列表
-
init
初始化敏感词树- Parameters:
sensitiveWords- 敏感词列表组成的字符串separator- 分隔符isAsync- 是否异步初始化
-
init
初始化敏感词树,使用逗号分隔每个单词- Parameters:
sensitiveWords- 敏感词列表组成的字符串isAsync- 是否异步初始化
-
setCharFilter
设置字符过滤规则,通过定义字符串过滤规则,过滤不需要的字符 当accept为false时,此字符不参与匹配- Parameters:
charFilter- 过滤函数
-
containsSensitive
是否包含敏感词- Parameters:
text- 文本- Returns:
- 是否包含
-
getFoundFirstSensitive
查找敏感词,返回找到的第一个敏感词- Parameters:
text- 文本- Returns:
- 敏感词
-
getFoundAllSensitive
查找敏感词,返回找到的所有敏感词- Parameters:
text- 文本- Returns:
- 敏感词
-
getFoundAllSensitive
public static List<FoundWord> getFoundAllSensitive(String text, boolean isDensityMatch, boolean isGreedMatch) 查找敏感词,返回找到的所有敏感词 密集匹配原则:假如关键词有 ab,b,文本是abab,将匹配 [ab,b,ab] 贪婪匹配(最长匹配)原则:假如关键字a,ab,最长匹配将匹配[a, ab]- Parameters:
text- 文本isDensityMatch- 是否使用密集匹配原则isGreedMatch- 是否使用贪婪匹配(最长匹配)原则- Returns:
- 敏感词
-
sensitiveFilter
处理过滤文本中的敏感词,默认替换成*- Parameters:
text- 文本- Returns:
- 敏感词过滤处理后的文本
-
sensitiveFilter
public static String sensitiveFilter(String text, boolean isGreedMatch, SensitiveProcessor sensitiveProcessor) 处理过滤文本中的敏感词,默认替换成*- Parameters:
text- 文本isGreedMatch- 贪婪匹配(最长匹配)原则:假如关键字a,ab,最长匹配将匹配[a, ab]sensitiveProcessor- 敏感词处理器,默认按匹配内容的字符数替换成*- Returns:
- 敏感词过滤处理后的文本
-