RegexTrie

public class RegexTrie
extends Object

java.lang.Object
com.android.tradefed.util.RegexTrie<V>


RegexTrie — это префиксное дерево, в котором каждый сохранено Часть ключа представляет собой 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, String... regexen)

Этот вспомогательный метод принимает список регулярных выражений в виде String и компилирует их на лету, прежде чем добавить последующие Pattern в префиксное дерево.

V put (V value, Pattern... patterns)

Добавить элемент в префиксное дерево.

V retrieve (String... strings)

Получите значение из дерева префиксов, сопоставив предоставленную последовательность String с последовательностью Pattern , хранящихся в дереве префиксов.

V retrieve (List<List<String>> captures, String... strings)

Получите значение из дерева префиксов, сопоставив предоставленную последовательность String с последовательностью Pattern , хранящихся в дереве префиксов.

String toString ()

Государственные строители

RegexTrie

public RegexTrie ()

Общедоступные методы

прозрачный

public void clear ()

помещать

public V put (V value, 
                String... regexen)

Этот вспомогательный метод принимает список регулярных выражений в виде String и компилирует их на лету, прежде чем добавить последующие Pattern в префиксное дерево.

Параметры
value V : Значение для установки

regexen String : Последовательность регулярных выражений (в виде String ), которые необходимо последовательно сопоставить для получения соответствующего value . Каждая строка будет скомпилирована как Pattern перед вызовом метода put(Object,Pattern...) .

Возвраты
V

помещать

public V put (V value, 
                Pattern... patterns)

Добавить элемент в префиксное дерево.

Параметры
value V : Значение для установки

patterns Pattern : Последовательность Pattern , которые необходимо последовательно сопоставить для получения соответствующего value .

Возвраты
V

забрать

public V retrieve (String... strings)

Получите значение из дерева префиксов, сопоставив предоставленную последовательность String с последовательностью Pattern , хранящихся в дереве префиксов.

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

Возвраты
V Соответствующее значение или null , если значение не было найдено.

забрать

public V retrieve (List<List<String>> captures, 
                String... strings)

Извлекает значение из дерева префиксов, сопоставляя предоставленную последовательность String с последовательностью Pattern , хранящихся в дереве префиксов. Эта версия метода также возвращает List групп захвата для каждого найденного Pattern .

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

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

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

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

Возвраты
V Соответствующее значение или null , если значение не было найдено.

toString

public String toString ()

Возвраты
String