RegexTrie
public class RegexTrie
extends Object
| java.lang.Object |
| ↳ | com.android.tradefed.util.RegexTrie<V> |
RegexTrie — это префиксное дерево, в котором каждый сохранено Часть ключа представляет собой Pattern регулярного выражения. Таким образом, полный сохранено Ключом является List<Pattern> а не List<String> как в стандартном префиксном дереве. Обратите внимание, что метод 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 [[], []]
Краткое содержание
Общедоступные методы |
|---|
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...) . |
помещать
public V put (V value,
Pattern... patterns) Добавить элемент в префиксное дерево.
| Параметры |
|---|
value | V : Значение для установки |
patterns | Pattern : Последовательность Pattern , которые необходимо последовательно сопоставить для получения соответствующего value . |
забрать
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 ()