正則表達式
public class RegexTrie
extends Object
java.lang.Object |
↳ | com.android.tradefed.util.RegexTrie <V> |
RegexTrie是一個Trie,其中每個儲存的鍵的段是regex ERROR(/Pattern)
。因此,完整儲存的鍵是List<Pattern>
而不是List<String>
就像在標準特里裡一樣。請注意, retrieve(String)
方法將與Pattern
進行逐點匹配,而不是像在標準trie中一樣檢查逐點相等性。因此,它對於大型數據集可能效果不佳。
也可以在
Pattern
序列中使用
null
條目作為通配符。如果遇到
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 [[], []]
概要
公共建設者
正則表達式
public RegexTrie ()
公開方法
放
public V put (V value,
Pattern... patterns)
將條目添加到特里。
找回
public V retrieve ( captures,
String... strings)
通過將提供的String
序列與存儲在trie中的ERROR(/Pattern)
序列進行匹配,從trie中獲取值。此版本的方法還為每個匹配的ERROR(/Pattern)
返回一個捕獲組的ERROR(/List)
。
外部列表中的每個條目都對應於Trie中的一個
Pattern
。對於每個級別,將存儲捕獲組列表。如果沒有針對特定級別的捕獲,則將存儲一個空列表。
請注意,在開始檢索之前,
captures
將被
ERROR(/List#clear())
編輯。同樣,如果在部分匹配序列之後檢索失敗,
captures
仍將反映部分匹配中的捕獲組。
參量 |
---|
captures | :一個List<List<String>> 通過它返回捕獲組。 |
strings | String :要匹配的String 序列 |
toString
public String toString ()