2011-06-07 22 views
5

मेरे पास स्ट्रिंग की एक सूची है। जब उपयोगकर्ता अक्षर को इनपुट करता है, तो प्रोग्राम टेक्स्टबॉक्स में सूची से सभी संभावित तार प्रदर्शित करेगा।विजुअल बेसिक नियमित अभिव्यक्ति प्रश्न

Dim fruit as new List(Of String) 'contains apple,orange,pear,banana 
Dim rx as New Regex(fruit) 
उदाहरण के लिए

उपयोगकर्ता में प्रवेश करती है तो एक, पी, एल, ई, आर, तो कार्यक्रम सेब और नाशपाती नज़र आए। यह किसी भी प्रविष्टि से मेल खाना चाहिए जिसके लिए सभी पत्र दर्ज किए गए हैं, आदेश के बावजूद और अतिरिक्त अक्षरों पर ध्यान दिए बिना। मुझे आरएक्स में क्या जोड़ना चाहिए? यदि नियमित अभिव्यक्तियों के साथ यह संभव नहीं है, तो कृपया ऐसा करने के किसी अन्य तरीके को निर्दिष्ट करें।

+2

सेब और नाशपाती क्यों दिखाई देते हैं और दूसरों को नहीं? – Flash

+0

क्या इनपुट वर्णों का क्रम प्रासंगिक है? जैसे 'ए, पी, एल 'मैप्स' एप्पल 'लेकिन' पी, एल, ए 'नहीं है? और: क्या वास्तव में आपके उदाहरण में 'नाशपाती' मिलना चाहिए? क्योंकि आपकी चरित्र सूची में 'l' है। –

+0

क्योंकि उपयोगकर्ता ने नारंगी और बी के लिए ओ, एन, जी में प्रवेश नहीं किया था, एन केले के लिए। विचार सभी शब्दों को प्रदर्शित करना है, जो वर्ण दर्ज किए गए हैं। – Cobold

उत्तर

7

LINQ दृष्टिकोण:

Dim fruits As New List(Of String) From { "apple", "orange", "pear", "banana" } 
Dim input As String = "a,p,l,e,r" 
Dim letters As String = input.Replace(",", "") 
Dim result = fruits.Where(Function(fruit) Not fruit.Except(letters).Any()) 

Regex दृष्टिकोण:

एक regex पैटर्न परिणामों से मेल करने के लिए की तरह कुछ के समान होगा:

"^[apler]+$" 

इस रूप में बनाया जा सकता है :

Dim fruits As New List(Of String) From { "apple", "orange", "pear", "banana" } 
Dim input As String = "n,a,b,r,o,n,g,e" 
Dim letters As String = input.Replace(",", "") 
Dim pattern As String = "^[" + letters + "]+$" 
Dim query = fruits.Where(Function(fruit) Regex.IsMatch(fruit, pattern)) 
+0

क्या यह नाशपाती के लिए असफल नहीं होगा? साथ ही, मुझे ऐसा लगता है कि यह 'ए, पी, एल, ई' युक्त किसी भी शब्द को वापस कर देगा, लेकिन इसमें अन्य पत्र भी शामिल होंगे - जैसे 'मेपल'। –

+0

@ जोएल आपकी टिप्पणी सही है। मैं ओपी की टिप्पणियों में स्पष्टीकरण चूक गया। –

+0

@ जोएल अपडेट दृष्टिकोण देखें। अब उन्हें उन मुद्दों को ध्यान में रखना चाहिए। –

संबंधित मुद्दे