मूल समस्या के लिए
बेहतर regex होगा
खोज expr .: {: मैं \ .text}
expr की जगह .: Int32.Parse (\ 1)
की जाँच करें: http://msdn.microsoft.com/en-us/library/2k3te2cs%28v=vs.100%29.aspx
VS में regex के लिए निश्चित गाइड के लिए
।
मैंने हाल ही में नरक से किसी अन्य प्रोग्रामर की सी ++ परियोजना को दोबारा सुधारना पूरा कर लिया है। उन्होंने पूरी तरह से और मनमाने ढंग से प्रवेश किया था, या यादृच्छिक, रिक्त स्थान और टैब, इंडेंटेशन (या नहीं), और पागल कोष्ठक के घोंसले के स्तर पर छोड़ दिया था, जैसे कि हम में से कोई भी किसी भी प्रकार के मानकों को कोड करने के लिए उपयोग नहीं कर सकता था शुरू करने से पहले कोड। असामान्य संरचनाओं को खोजने और सही करने के लिए बड़े पैमाने पर प्रयुक्त रेगेक्स। कुछ घंटों में, मैं वास्तव में उनमें से अधिकतर देखे बिना कोड की लगभग 125,000 लाइनों में बड़ी समस्याओं को ठीक करने में सक्षम था। एक विशेष एकल खोज/प्रतिस्थापन में मैंने 125 फाइलों में कोड की 22,000 से अधिक लाइनों को बदल दिया, कुल समय 10 सेकंड के नीचे।
regex में विशेष रूप से उपयोगी निर्माणों:
: बी + == एक या अधिक रिक्त स्थान और/या टैब।
: मैं == एक सी शैली चर नाम या कीवर्ड से मेल खाता है (यानी, जबकि, अगर, pick3, bNotImportant)
: Wh एक खाली स्थान के चार == .; न केवल खाली या टैब
: Sm == अंकगणित प्रतीकों में से कोई भी (+, -,>, =, आदि।)
: पु किसी भी विराम चिह्न
\ n == == लाइन ब्रेक (खोजने जहां वह 8 या 10 रिक्त लाइनों डाला था) के लिए उपयोगी
^== मैचों लाइन के शुरू ($ करने के लिए मैच एंड)
हालांकि कुछ अन्य रेगेक्स मानक (डुह) से मेल खाना अच्छा होता, मुझे कई एमएस एक्सटेंशन कोड आधार खोजने के लिए बेहद उपयोगी पाते थे, जैसे 'पहचानकर्ता' सैकड़ों को परिभाषित नहीं करना "[ए-ज़ा-जे 0-9] +" के रूप में, बस ": i" का उपयोग कर।
मुझे पता है कि यह पुराना है ... लेकिन माइक्रोसॉफ्ट को माइक्रोसॉफ्ट को अपने स्वयं के तरीके से सबकुछ क्यों करना है। मैंने जो भी अन्य आईडीई और सॉफ़्टवेयर का उपयोग किया है, वे अभिव्यक्तियों को चिह्नित करने के लिए उपयोग करते हैं और उन्हें संदर्भित करने के लिए $ 1 का उपयोग करते हैं। माइक्रोसॉफ्ट को इन अनियमित अभिव्यक्तियों को कॉल करना चाहिए – MikeMurko
@ माइकमुर्को वीएस 11 {} \ 1 वाक्यविन्यास और उपयोग() $ 1 से दूर है। वाह! – Timothy003
कभी भी देर से बेहतर नहीं;) –