RegexTrie

public class RegexTrie
extends Object

java.lang.Объект
com.android.tradefed.util.RegexTrie<V>


RegexTrie — это дерево, в котором каждый хранится сегмент ключа представляет собой регулярное выражение ERROR(/Pattern) . Таким образом, полная хранится ключ представляет собой List&lt;Pattern&gt; а не List&lt;String&gt; как в стандартном дереве. Обратите внимание, что метод retrieve(String) будет поточечно сопоставляться с Pattern , а не проверяться на поточечное равенство, как в стандартном дереве. Из-за этого он может работать плохо для больших наборов данных.

Также можно использовать null запись в последовательности Pattern в качестве подстановочного знака. Если встречается 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)

Добавьте запись в дерево.

V retrieve (String... strings)

Получите значение из дерева, сопоставив предоставленную последовательность String с последовательностью ERROR(/Pattern) хранящейся в дереве.

V retrieve ( captures, String... strings) retrieve ( captures, String... strings)

Получите значение из дерева, сопоставив предоставленную последовательность String с последовательностью ERROR(/Pattern) хранящейся в дереве.

String toString ()

Общественные конструкторы

RegexTrie

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 с последовательностью ERROR(/Pattern) хранящейся в дереве. Эта версия метода также возвращает ERROR(/List) групп захвата для каждой найденной ERROR(/Pattern) .

Каждая запись во внешнем списке соответствует одному уровню Pattern в дереве. Для каждого уровня будет сохранен список групп захвата. Если для определенного уровня не было захватов, будет сохранен пустой список.

Обратите внимание, что перед началом извлечения будет captures ERROR(/List#clear()) . Кроме того, если извлечение завершается неудачно после частичной последовательности совпадений, captures все равно будут отражать группы захвата из частичного совпадения.

Параметры
captures : List<List<String>> через который будут возвращены группы захвата.

strings String : Последовательность String для сопоставления.

Возврат
V Связанное значение или null , если значение не найдено.

toString

public String toString ()

Возврат
String