2013-02-15 15 views
5
Dim rc As Boolean = "2" Like "*?<*?" 

मुझे समझ नहीं आता क्यों rc यह सच है के बराबर होती है, निश्चित रूप से 2*?<*? बिल्कुल पसंद नहीं है।VB.NET से कम संकेत पैटर्न में

ऊपर पैटर्न

  • कम से कम तीन अक्षर के साथ एक स्ट्रिंग की आवश्यकता है (दो? की और एक <)
  • जहां < प्रतीक इंटीरियर पर कहीं है।

जहाँ तक मुझे बाहर < काम कर सकते हैं के रूप में विशेष वर्ण की तरह ऑपरेटर के लिए < के अलावा कुछ मतलब है कि नहीं है।

विजुअल स्टूडियो 2010

+0

मुझे नहीं पता कि "2" मैचों "<" क्यों हैं। हालांकि, इसे पहले से तीन वर्णों की आवश्यकता नहीं है क्योंकि '*' किसी भी चीज़ के लिए वाइल्डकार्ड है (इसलिए शून्य वर्ण भी)। –

+0

मुझे पता है * किसी भी चीज़ से मेल खाता है, इसलिए "2" दोनों * और? वाइल्डकार्ड, लेकिन <अभी भी मैच से गायब है जैसा कि दूसरा है? –

+1

उत्सुकता से यदि आप दो अंतिम वाइल्डकार्ड में से एक को भी हटाते हैं तो परिणाम गलत है। – Steve

उत्तर

1

का उपयोग करते समय मैं सीधे व्याख्या नहीं कर सकते क्यों 2"*?<*?" की तरह है।

आपकी क्वेरी पढ़ती है;

  • * - मैच 0 या अधिक वर्ण
  • ? - 0 या अधिक वर्ण
  • ? इसके बाद - - < चरित्र
  • * इसके बाद - एक ही चरित्र
  • < इसके बाद समाप्त एक सिंगल कैरेक्टर द्वारा

आपके तर्क के लिए आप चाहते हैं;

कम से कम तीन वर्णों से पहले यह "<" स्ट्रिंग

कौन से एक प्रश्न में जो परिणाम के इंटीरियर पर कहीं होने के साथ, मेल खाता है;

Dim rc As Boolean = "2" Like "???*<*" 

जो पढ़ता है;

  • ??? - मैच में कम से कम 3 अक्षरों
  • * - आगे पात्रों
  • < के किसी भी नंबर के बाद - < चरित्र
  • * इसके बाद - आगे है वर्णों की संख्या इसके बाद

मुझे कोई सीधा जवाब नहीं है, लेकिन मुझे उम्मीद है कि यह सभी की मदद करता है ...

संपादित करें:

नीचे अपनी टिप्पणी का उत्तर दें।

आप चाहेंगे;

एक स्ट्रिंग जो दोनों ओर

कौन से एक प्रश्न में जो परिणाम पर कम से कम एक चरित्र के साथ कहीं न कहीं एक "<" उस में है लगता है;

Dim rc As Boolean = "2" Like "*?<?*" 

यह परिणामस्वरूप गलत साबित होगा;

Dim rc As Boolean = "<" Like "*?<?*" 

हालांकि;

Dim rc As Boolean = "2<2" Like "*?<?*" 

सच हो जाएगा।

मुझे उम्मीद है कि यह मदद करता है (अधिक!)

+0

मुझे जो करना है उसे एक स्ट्रिंग मिलती है जिसमें किसी भी तरफ कम से कम एक चरित्र वाला "<" होता है। मैं इसे String.IndexOf और सामान का उपयोग करके आसानी से पर्याप्त लिख सकता हूं, लेकिन मैंने सोचा कि लाइक ऑपरेटर एक आसान तरीका होगा। मुझे कम से कम दो <अक्षरों के साथ एक स्ट्रिंग के लिए एक मैच की भी आवश्यकता होगी, जिसमें प्रत्येक <प्रतीक के किसी भी तरफ कम से कम एक वर्ण होगा (मैंने सोचा * <*? <*? ऐसा करेगा, लेकिन स्पष्ट रूप से मैं गलत हूं)। –

+0

कृपया मेरा संपादन देखें! :- डी – PGallagher

+0

वाह, यह काम करता है। WHYYYYY !? '? *' और '*?' –