मैं परीक्षण करना चाहता हूं कि एक रेगेक्स एक विशिष्ट इंडेक्स पर स्ट्रिंग के हिस्से से मेल खाएगा (और केवल उस विशिष्ट इंडेक्स से शुरू हो रहा है)। उदाहरण के लिए, स्ट्रिंग को "एक दो 3 4 पांच" दिया गया, मैं यह जानना चाहता हूं कि, सूचकांक 8 पर, नियमित अभिव्यक्ति [0-9] + "3" से मेल खाती है। RegularExpression.IsMatch और मैच दोनों एक प्रारंभिक सूचकांक लेते हैं, हालांकि वे दोनों आवश्यक होने पर एक मैच के लिए पूरे स्ट्रिंग को खोजेंगे।सी # नियमित अभिव्यक्ति मैच?
string text="one two 3 4 five";
Regex num=new Regex("[0-9]+");
//unfortunately num.IsMatch(text,0) also finds a match and returns true
Console.WriteLine("{0} {1}",num.IsMatch(text, 8),num.IsMatch(text,0));
जाहिर
, अगर जिसके परिणामस्वरूप मैच सूचकांक मैं में दिलचस्पी है पर शुरू होता है मैं जांच कर सकता है, लेकिन मैं इस बड़े तारों पर समय की एक बड़ी संख्या में कर रही होगी, तो मैं समय बर्बाद करने के लिए खोज नहीं करना चाहते बाद में स्ट्रिंग में मैचों के लिए। साथ ही, मैं पहले से नहीं जानूंगा कि नियमित अभिव्यक्ति मैं वास्तव में स्ट्रिंग के खिलाफ परीक्षण करूँगा।
मैं नहीं करना चाहता:
- क्योंकि मेरे स्थिति में कुछ सीमा खाली स्थान के तरह पर स्ट्रिंग विभाजित मैं अग्रिम में पता नहीं होगा क्या एक उपयुक्त सीमा होगा
- करने के लिए है किसी भी तरह से में इनपुट स्ट्रिंग को संशोधित
- एक चटाई के लिए स्ट्रिंग के बाकी खोज (सूचकांक 8 पर सबस्ट्रिंग हो रही है और फिर regex में उपयोग कर ^) की तरह ch या कुछ भी करें जो बड़ी स्ट्रिंग के विरुद्ध बड़ी संख्या में परीक्षणों के लिए प्रदर्शन नहीं करेगा।
मैं एक मनमानी उपयोगकर्ता द्वारा प्रदान किए गए व्याकरणिक उपयोगकर्ता द्वारा उपयोग किए जाने वाले संभावित बड़े उपयोगकर्ता द्वारा समर्थित शरीर को पार्स करना चाहता हूं। व्याकरण को बीएनएफ या पीईजी में सिंटैक्स की तरह परिभाषित किया जाएगा, और टर्मिनलों या तो स्ट्रिंग अक्षर या नियमित अभिव्यक्ति होगी। इस प्रकार मुझे यह जांचने की आवश्यकता होगी कि स्ट्रिंग का अगला भाग ग्रामर द्वारा संचालित संभावित टर्मिनल से मेल खाता है या नहीं।
क्या आप समझा सकते हैं कि आप व्यापक अर्थ में क्या करने की कोशिश कर रहे हैं? जो आप नहीं करना चाहते हैं उस पर आपके प्रतिबंध भ्रमित हैं। –
मैंने जो कुछ भी कर रहा हूं उसका एक संक्षिप्त विवरण जोड़ा। इसके अलावा, आवश्यकताओं को वास्तव में उबालते हैं: मैं कुछ भी धीमा नहीं करना चाहता हूं और मुझे गहराई से ज्ञान नहीं है कि मैं आगे बढ़ने की कोशिश कर रहा हूं। – Rngbus