正则表达式字典树
public
class
RegexTrie
extends Object
java.lang.Object | |
↳ | com.android.tradefed.util.RegexTrie<V> |
RegexTrie 是一种 trie,其中键的每个ERROR(/Pattern)
。因此,完整的List<Pattern>
,而不是标准字典树中的 List<String>
。请注意,retrieve(String)
方法将与 Pattern
进行点匹配,而不是像在标准 trie 中那样检查点相等。因此,对于大型数据集,其性能可能会不佳。
您还可以使用 Pattern
序列中的 null
条目充当通配符。如果遇到 null
,序列中的所有后续条目都将被忽略。
当检索代码遇到 null
Pattern
时,它会首先等待查看更具体的条目是否与序列匹配。如果存在,系统会继续使用该更具体的条目,即使它之后未能匹配也是如此。
如果没有更具体的条目匹配,通配符匹配将将所有剩余的 String
添加到捕获列表(如果已启用)中,并返回与通配符关联的值。
通配符功能的简短示例:
List<List<String>> captures = new LinkedList<List<String>>(); RegexTrie<Integer> trie = new RegexTrie<Integer>(); trie.put(2, "a", null); trie.put(4, "a", "b"); trie.retrieve(captures, "a", "c", "e"); // returns 2. captures is now [[], ["c"], ["e"]] trie.retrieve(captures, "a", "b"); // returns 4. captures is now [[], []] trie.retrieve(captures, "a", "b", "c"); // returns null. captures is now [[], []]
摘要
公共构造函数 | |
---|---|
RegexTrie()
|
公共方法 | |
---|---|
void
|
clear()
|
V
|
put(V value, Pattern... patterns)
向 trie 添加一个条目。 |
V
|
retrieve(String... strings)
通过将提供的 |
V
|
retrieve(
通过将提供的 |
String
|
toString()
|
公共构造函数
正则表达式 Trie
public RegexTrie ()
公共方法
清除
public void clear ()
放置
public V put (V value, Pattern... patterns)
向字典树添加条目。
参数 | |
---|---|
value |
V :要设置的值 |
patterns |
Pattern :必须按顺序匹配的 ERROR(/Pattern) 序列,才能检索关联的 value |
返回 | |
---|---|
V |
检索
public V retrieve (String... strings)
通过将提供的 String
序列与存储在字典树中的 ERROR(/Pattern)
序列进行匹配,从字典树中提取值。
参数 | |
---|---|
strings |
String :要匹配的 String 序列 |
返回 | |
---|---|
V |
关联的值,如果未找到值,则为 null |
检索
public V retrieve (captures, String... strings)
将提供的 String
序列与存储在 trie 中的一系列 ERROR(/Pattern)
相匹配,从 trie 中提取值。此版本的方法还会针对匹配到的每个 ERROR(/Pattern)
返回一个包含捕获组的 ERROR(/List)
。
外部列表中的每个条目都对应于字典树中的一个 Pattern
级别。系统会存储每个级别的捕获组列表。如果没有针对特定级别的捕获,则会存储一个空列表。
请注意,在检索开始之前,captures
将被 ERROR(/List#clear())
处理。此外,如果在完成部分匹配序列后检索失败,captures
仍会反映部分匹配中的捕获组。
参数 | |
---|---|
captures |
:用于返回捕获组的 List<List<String>> 。 |
strings |
String :要匹配的一系列 String |
返回 | |
---|---|
V |
关联的值,如果未找到值,则返回 null |
toString
public String toString ()
返回 | |
---|---|
String |