Wyrażenie regularne
public
class
RegexTrie
extends Object
java.lang.Object | |
↳ | com.android.tradefed.util.RegexTrie<V> |
RegexTrie to trie, w której każdy ERROR(/Pattern)
Dlatego pełnym List<Pattern>
,
niż List<String>
jak w standardowym trie. Pamiętaj, że parametr
Metoda retrieve(String)
będzie dopasowywana punktowo do metod Pattern
,
zamiast sprawdzania
równości punktowej jak w standardowej trie. Z tego powodu
będzie gorzej działać w dużych zbiorach danych.
Jako symbolu wieloznacznego można też użyć wpisu null
w sekwencji Pattern
. Jeśli
napotkany błąd null
spowoduje, że wszystkie kolejne wpisy w sekwencji będą ignorowane.
Gdy kod pobierania napotka null
Pattern
, najpierw sprawdzi, czy
bardziej konkretny wpis pasuje do sekwencji. W przeciwnym razie
będzie ona kontynuowana,
nawet jeśli później nie uda się go dopasować.
Jeśli nie pasuje bardziej konkretny wpis, dopasowanie z symbolem wieloznacznym spowoduje dodanie wszystkich pozostałych elementów String
na listę przechwytywania (jeśli ta opcja jest włączona) i zwraca wartość powiązaną z symbolem wieloznacznym.
Krótki przykład działania symbolu wieloznacznego:
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 [[], []]
Podsumowanie
Konstruktory publiczne | |
---|---|
RegexTrie()
|
Metody publiczne | |
---|---|
void
|
clear()
|
V
|
put(V value, Pattern... patterns)
Dodaj wpis do grupy. |
V
|
retrieve(String... strings)
Pobierz wartość z trie, dopasowując podaną sekwencję |
V
|
retrieve(
Pobierz wartość z trie, dopasowując podaną sekwencję |
String
|
toString()
|
Konstruktory publiczne
Wyrażenie regularne
public RegexTrie ()
Metody publiczne
wyczyść
public void clear ()
Połącz
public V put (V value, Pattern... patterns)
Dodaj wpis do grupy.
Parametry | |
---|---|
value |
V : wartość do ustawienia |
patterns |
Pattern : sekwencja zmiennych ERROR(/Pattern) , które muszą zostać dopasowane sekwencyjnie do
pobierz powiązane value |
Zwroty | |
---|---|
V |
odzyskaj
public V retrieve (String... strings)
Pobierz wartość z trie, dopasowując podaną sekwencję String
do
sekwencji ERROR(/Pattern)
s zapisanych w trie.
Parametry | |
---|---|
strings |
String : sekwencja String s do dopasowania. |
Zwroty | |
---|---|
V |
Powiązana wartość lub null , jeśli nie znaleziono wartości. |
odzyskaj
public V retrieve (captures, String... strings)
Pobierz wartość z trie, dopasowując podaną sekwencję String
do
sekwencji ERROR(/Pattern)
s zapisanych w trie. Ta wersja metody zwraca też
ERROR(/List)
grup przechwytywania dla każdego pasującego elementu ERROR(/Pattern)
.
Każda pozycja na zewnętrznej liście odpowiada jednemu poziomowi Pattern
w trie.
Dla każdego poziomu przechowywana jest lista grup przechwytywania. Jeśli nie było żadnych zapisów
dla danego poziomu, zostanie zapisana pusta lista.
Pamiętaj, że wartość captures
zostanie ERROR(/List#clear())
edytowana przed rozpoczęciem pobierania.
Ponadto jeśli pobranie nie powiedzie się po częściowej sekwencji dopasowań, captures
nadal odzwierciedlają grupy przechwytywania z dopasowania częściowego.
Parametry | |
---|---|
captures |
: pole List<List<String>> , za pomocą którego będą zwracane grupy przechwytywania. |
strings |
String : sekwencja String s do dopasowania. |
Zwroty | |
---|---|
V |
Powiązana wartość lub null , jeśli nie znaleziono wartości. |
Ciąg
public String toString ()
Zwroty | |
---|---|
String |