Wyrażenie regularne
public class RegexTrie
extends Object
java.lang.Obiekt |
↳ | com.android.tradefed.util.RegexTrie<V> |
RegexTrie to próba, w której każdy przechowywane segment klucza to wyrażenie regularne ERROR(/Pattern)
. Tym samym pełnia przechowywane kluczem jest List<Pattern>
zamiast List<String>
jak w standardowej próbie. Zauważ, że metoda retrieve(String)
będzie dopasowywana punktowo do Pattern
s, a nie sprawdzana pod kątem równości punktowej, jak w przypadku standardowej próby. Z tego powodu może działać słabo w przypadku dużych zestawów danych.
Można również użyć
null
wpisu w sekwencji
Pattern
, aby służył jako symbol wieloznaczny. W przypadku napotkania
null
wszystkie kolejne wpisy w sekwencji będą ignorowane. Gdy kod pobierania napotka wartość
null
Pattern
, najpierw zaczeka, aby sprawdzić, czy bardziej szczegółowy wpis pasuje do sekwencji. Jeśli tak się stanie, ten bardziej szczegółowy wpis będzie kontynuowany, nawet jeśli później nie będzie pasować.
Jeśli żaden bardziej szczegółowy wpis nie pasuje, dopasowanie symboli wieloznacznych doda wszystkie pozostałe
String
do listy przechwyceń (jeśli jest włączona) i zwróci wartość powiązaną z symbolem wieloznacznym.
Krótka próbka funkcjonalności symboli wieloznacznych:
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 [[], []]
Streszczenie
Metody publiczne |
---|
void | clear () |
V | put (V value, Pattern... patterns) Dodaj wpis do trie. |
V | retrieve (String... strings) Pobierz wartość z trie, dopasowując podaną sekwencję String s do sekwencji ERROR(/Pattern) s przechowywanych w trie. |
V | retrieve ( captures, String... strings) retrieve ( captures, String... strings) Pobierz wartość z trie, dopasowując podaną sekwencję String s do sekwencji ERROR(/Pattern) s przechowywanych w trie. |
String | toString () |
Konstruktory publiczne
Wyrażenie regularne
public RegexTrie ()
Metody publiczne
jasne
public void clear ()
umieścić
public V put (V value,
Pattern... patterns)
Dodaj wpis do trie.
Parametry |
---|
value | V : Wartość do ustawienia |
patterns | Pattern : Sekwencja ERROR(/Pattern) s, które muszą być sekwencyjnie dopasowane, aby pobrać powiązaną value |
odzyskać
public V retrieve (String... strings)
Pobierz wartość z trie, dopasowując podaną sekwencję String
s do sekwencji ERROR(/Pattern)
s przechowywanych w trie.
Parametry |
---|
strings | String : Sekwencja String s do dopasowania |
Zwroty |
---|
V | Powiązana wartość lub null , jeśli nie znaleziono żadnej wartości |
odzyskać
public V retrieve ( captures,
String... strings)
Pobierz wartość z trie, dopasowując podaną sekwencję String
s do sekwencji ERROR(/Pattern)
s przechowywanych w trie. Ta wersja metody zwraca również ERROR(/List)
grup przechwytywania dla każdego dopasowanego ERROR(/Pattern)
.
Każdy wpis na Liście zewnętrznej odpowiada jednemu poziomowi
Pattern
w trie. Dla każdego poziomu zostanie zapisana lista grup przechwytywania. Jeśli nie było przechwyceń dla określonego poziomu, zostanie zapisana pusta lista.
Zauważ, że
captures
będą
ERROR(/List#clear())
przed rozpoczęciem pobierania. Ponadto, jeśli pobieranie nie powiedzie się po częściowej sekwencji dopasowań,
captures
nadal będzie odzwierciedlać grupy przechwytywania z częściowego dopasowania.
Parametry |
---|
captures | : List<List<String>> przez którą zostaną zwrócone grupy przechwytywania. |
strings | String : Sekwencja String s do dopasowania |
Zwroty |
---|
V | Powiązana wartość lub null , jeśli nie znaleziono żadnej wartości |
do Ciągu
public String toString ()