رجکس تری
public class RegexTrie
extends Object
| شیء جاوا | |
| ↳ | com.android.tradefed.util.RegexTrie<V> |
RegexTrie یک trie است که در آن هرPattern regex است. بنابراین، کلList<Pattern> است، نه یک List<String> مانند یک trie استاندارد. توجه داشته باشید که متد retrieve(String...) به جای بررسی برابری نقطهای مانند یک trie استاندارد، به صورت نقطهای با Pattern تطبیق داده میشود. به همین دلیل، ممکن است برای مجموعه دادههای بزرگ عملکرد ضعیفی داشته باشد.
همچنین میتوان از یک ورودی null در توالی Pattern به عنوان یک علامت اختصاری استفاده کرد. اگر با یک null مواجه شود، تمام ورودیهای بعدی در توالی نادیده گرفته میشوند. وقتی کد بازیابی با یک Pattern null مواجه میشود، ابتدا منتظر میماند تا ببیند آیا یک ورودی خاصتر با توالی مطابقت دارد یا خیر. اگر چنین باشد، آن ورودی خاصتر ادامه مییابد، حتی اگر متعاقباً در مطابقت با آن شکست بخورد.
اگر هیچ ورودی خاصتری مطابقت نداشته باشد، تطبیق wildcard تمام String باقی مانده را به لیست captures (در صورت فعال بودن) اضافه میکند و مقدار مرتبط با wildcard را برمیگرداند.
یک نمونه کوتاه از قابلیت wildcard:
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) این متد کمکی، فهرستی از عبارات منظم را به عنوان |
V | put (V value, Pattern... patterns)یک ورودی به trie اضافه کنید. |
V | retrieve (String... strings) با تطبیق توالی ارائه شده از |
V | retrieve (List<List<String>> captures, String... strings) با تطبیق توالی ارائه شده از |
String | toString () |
سازندگان عمومی
رجکس تری
public RegexTrie ()
روشهای عمومی
واضح
public void clear ()
قرار دادن
public V put (V value,
String... regexen) این متد کمکی، فهرستی از عبارات منظم را به عنوان String دریافت میکند و قبل از اضافه کردن Pattern های بعدی به trie، آنها را درجا کامپایل میکند.
| پارامترها | |
|---|---|
value | V : مقداری که باید تنظیم شود |
regexen | String : دنباله ای از عبارات منظم (به عنوان String s) که باید به صورت متوالی برای بازیابی value مرتبط تطبیق داده شوند. هر رشته قبل از فراخوانی put(Object,Pattern...) به عنوان یک Pattern کامپایل میشود. |
| بازگشتها | |
|---|---|
V | |
قرار دادن
public V put (V value,
Pattern... patterns)یک ورودی به trie اضافه کنید.
| پارامترها | |
|---|---|
value | V : مقداری که باید تنظیم شود |
patterns | Pattern : دنباله ای از Pattern که باید به صورت متوالی تطبیق داده شوند تا value مرتبط بازیابی شود. |
| بازگشتها | |
|---|---|
V | |
بازیابی
public V retrieve (String... strings)
با تطبیق توالی ارائه شده از String ها با توالی Pattern های ذخیره شده در trie، یک مقدار را از trie دریافت کنید.
| پارامترها | |
|---|---|
strings | String : دنبالهای از String برای تطبیق |
| بازگشتها | |
|---|---|
V | مقدار مرتبط، یا اگر مقداری یافت نشد null |
بازیابی
public V retrieve (List<List<String>> captures,
String... strings) با تطبیق توالی ارائه شده از String ها با توالی Pattern های ذخیره شده در trie، یک مقدار را از trie دریافت میکند. این نسخه از متد همچنین List از گروههای ثبت شده برای هر Pattern که تطبیق داده شده است را برمیگرداند.
هر ورودی در لیست بیرونی مربوط به یک سطح از Pattern در درخت است. برای هر سطح، لیست گروههای ضبط ذخیره میشود. اگر هیچ ضبطی برای یک سطح خاص وجود نداشته باشد، یک لیست خالی ذخیره میشود.
توجه داشته باشید که قبل از شروع بازیابی، captures با List.clear() ویرایش میشوند. همچنین، اگر بازیابی پس از دنبالهای جزئی از تطابقها با شکست مواجه شود، captures همچنان گروههای رکورد را از تطابق جزئی منعکس میکنند.
| پارامترها | |
|---|---|
captures | List : یک List<List<String>> که از طریق آن گروههای ضبط بازگردانده میشوند. |
strings | String : دنبالهای از String برای تطبیق |
| بازگشتها | |
|---|---|
V | مقدار مرتبط، یا اگر مقداری یافت نشد null |
رشتهی دوتایی
public String toString ()
| بازگشتها | |
|---|---|
String | |