রেজেক্সট্রাই

public class RegexTrie
extends Object

java.lang.Object
com.android.tradefed.util.RegexTrie<V>


RegexTrie হলো একটি ট্রাই যেখানে প্রতিটি সংরক্ষিত কী-এর অংশটি একটি রেজেক্স Pattern । সুতরাং, সম্পূর্ণ সংরক্ষিত একটি সাধারণ ট্রাই-এর মতো List&lt;String&gt; না হয়ে, key হলো একটি List&lt;Pattern&gt; । উল্লেখ্য যে, retrieve(String...) মেথডটি একটি সাধারণ ট্রাই-এর মতো পয়েন্টওয়াইজ সমতা যাচাই না করে, Pattern গুলোর সাথে পয়েন্টওয়াইজ মেলানো হবে। এই কারণে, এটি বড় ডেটাসেটের ক্ষেত্রে দুর্বল পারফর্ম করতে পারে।

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 [[], []]
 

সারসংক্ষেপ

সরকারি নির্মাণকারী

RegexTrie ()

জনসাধারণের পদ্ধতি

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 ()

সরকারি নির্মাণকারী

রেজেক্সট্রাই

public RegexTrie ()

জনসাধারণের পদ্ধতি

পরিষ্কার

public void clear ()

রাখুন

public V put (V value, 
                String... regexen)

এই হেল্পার মেথডটি রেগুলার এক্সপ্রেশনের একটি তালিকা String হিসেবে গ্রহণ করে এবং ট্রাই-তে পরবর্তী Pattern যোগ করার আগে সেগুলোকে তাৎক্ষণিকভাবে কম্পাইল করে।

প্যারামিটার
value V : যে মানটি নির্ধারণ করতে হবে

regexen String : রেগুলার এক্সপ্রেশনের ক্রম ( String হিসেবে), যা সংশ্লিষ্ট value পুনরুদ্ধার করার জন্য ক্রমানুসারে মেলানো আবশ্যক। put(Object,Pattern...) কল করার আগে প্রতিটি স্ট্রিং একটি Pattern হিসেবে কম্পাইল করা হবে।

ফেরত
V

রাখুন

public V put (V value, 
                Pattern... patterns)

ট্রাই-তে একটি এন্ট্রি যোগ করুন।

প্যারামিটার
value V : যে মানটি নির্ধারণ করতে হবে

patterns Pattern : Pattern সেই অনুক্রম যা সংশ্লিষ্ট value পুনরুদ্ধার করার জন্য ক্রমানুসারে মেলাতে হবে।

ফেরত
V

পুনরুদ্ধার করুন

public V retrieve (String... strings)

প্রদত্ত String -এর অনুক্রমকে ট্রাই-তে সংরক্ষিত Pattern -এর অনুক্রমের সাথে মিলিয়ে ট্রাই থেকে একটি মান সংগ্রহ করুন।

প্যারামিটার
strings String : মেলানোর জন্য String -এর একটি ক্রম

ফেরত
V সংশ্লিষ্ট মান, অথবা কোনো মান খুঁজে না পাওয়া গেলে null

পুনরুদ্ধার করুন

public V retrieve (List<List<String>> captures, 
                String... strings)

প্রদত্ত String -এর অনুক্রমকে ট্রাই-তে সংরক্ষিত Pattern -এর অনুক্রমের সাথে মিলিয়ে ট্রাই থেকে একটি মান গ্রহণ করুন। এই পদ্ধতির সংস্করণটি মিলে যাওয়া প্রতিটি Pattern জন্য ক্যাপচার গ্রুপের একটি List ফেরত দেয়।

বাইরের তালিকার প্রতিটি এন্ট্রি ট্রাই-এর Pattern একটি স্তরের সাথে সঙ্গতিপূর্ণ। প্রতিটি স্তরের জন্য, ক্যাপচার গ্রুপগুলির তালিকা সংরক্ষণ করা হবে। যদি কোনো নির্দিষ্ট স্তরের জন্য কোনো ক্যাপচার না থাকে, তাহলে একটি খালি তালিকা সংরক্ষণ করা হবে।

মনে রাখবেন যে ডেটা পুনরুদ্ধার শুরু হওয়ার আগে captures List.clear() করে দেওয়া হবে। এছাড়াও, যদি একাধিক আংশিক মিলের পর পুনরুদ্ধার ব্যর্থ হয়, তবুও captures সেই আংশিক মিলের ক্যাপচার গ্রুপগুলোই প্রতিফলিত হবে।

প্যারামিটার
captures List : একটি List<List<String>> যার মাধ্যমে ক্যাপচার গ্রুপগুলো ফেরত দেওয়া হবে।

strings String : মেলানোর জন্য String -এর একটি ক্রম

ফেরত
V সংশ্লিষ্ট মান, অথবা কোনো মান খুঁজে না পাওয়া গেলে null

স্ট্রিং-এ

public String toString ()

ফেরত
String