Package org.aoju.bus.sensitive
Class WordTree
- All Implemented Interfaces:
Serializable,Cloneable,Map<Character,WordTree>
DFA(Deterministic Finite Automaton 确定有穷自动机)
DFA单词树(以下简称单词树),常用于在某大段文字中快速查找某几个关键词是否存在
单词树使用group区分不同的关键字集合,不同的分组可以共享树枝,避免重复建树
单词树使用树状结构表示一组单词
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K, V> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription添加单词,使用默认类型增加一组单词addWords(Collection<String> words) 增加一组单词voidclear()清除所有的词, 此方法调用后, wordTree 将被清空 endCharacterSet 也将清空boolean指定文本是否包含树中的词获得第一个匹配的关键字找出所有匹配的关键字找出所有匹配的关键字找出所有匹配的关键字 密集匹配原则:假如关键词有 ab,b,文本是abab,将匹配 [ab,b,ab] 贪婪匹配(最长匹配)原则:假如关键字a,ab,最长匹配将匹配[a, ab]setCharFilter(Predicate<Character> predicate) 设置字符过滤规则,通过定义字符串过滤规则,过滤不需要的字符 当accept为false时,此字符不参与匹配Methods inherited from class java.util.HashMap
clone, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, forEach, get, getOrDefault, isEmpty, keySet, merge, newHashMap, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, valuesMethods inherited from class java.util.AbstractMap
equals, hashCode, toString
-
Constructor Details
-
WordTree
public WordTree()默认构造
-
-
Method Details
-
setCharFilter
-
addWords
-
addWords
-
addWord
-
isMatch
-
match
-
matchAll
-
matchAll
-
matchAll
找出所有匹配的关键字 密集匹配原则:假如关键词有 ab,b,文本是abab,将匹配 [ab,b,ab] 贪婪匹配(最长匹配)原则:假如关键字a,ab,最长匹配将匹配[a, ab]- Parameters:
text- 被检查的文本limit- 限制匹配个数isDensityMatch- 是否使用密集匹配原则isGreedMatch- 是否使用贪婪匹配(最长匹配)原则- Returns:
- 匹配的词列表
-
clear
-