2010-01-24 16 views
39

मैं जैसे कुछ काम के बयानों को बदलने के लिए करना चाहते हैं:दृश्य स्टूडियो खोजें और प्रतिस्थापित रेगुलर एक्सप्रेशन मदद

int someNum = txtSomeNum.Text; 
int anotherNum = txtAnotherNum.Text; 

साथ

int someNum = Int32.Parse(txtSomeNum.Text); 
int anotherNum = Int32.Parse(txtAnotherNum.Text); 

वहाँ दृश्य स्टूडियो के ढूँढें के साथ ऐसा करना एक अच्छा तरीका है और नियमित अभिव्यक्तियों का उपयोग करके बदलें? मुझे यकीन नहीं है कि नियमित अभिव्यक्ति क्या होगी।

उत्तर

59

मुझे विजुअल स्टूडियो में लगता है, आप घुंघराले ब्रेसिज़ {txtSomeNum.Text} के साथ अभिव्यक्तियों को चिह्नित कर सकते हैं। फिर प्रतिस्थापन में, आप इसे \1 के साथ संदर्भित कर सकते हैं। तो प्रतिस्थापन लाइन Int32.Parse(\1) की तरह कुछ होगी।


अद्यतन: के माध्यम से@ Timothy003

वी.एस. 11 {} \ 1 वाक्य रचना और उपयोग करता है() $ 1

+26

मुझे पता है कि यह पुराना है ... लेकिन माइक्रोसॉफ्ट को माइक्रोसॉफ्ट को अपने स्वयं के तरीके से सबकुछ क्यों करना है। मैंने जो भी अन्य आईडीई और सॉफ़्टवेयर का उपयोग किया है, वे अभिव्यक्तियों को चिह्नित करने के लिए उपयोग करते हैं और उन्हें संदर्भित करने के लिए $ 1 का उपयोग करते हैं। माइक्रोसॉफ्ट को इन अनियमित अभिव्यक्तियों को कॉल करना चाहिए – MikeMurko

+25

@ माइकमुर्को वीएस 11 {} \ 1 वाक्यविन्यास और उपयोग() $ 1 से दूर है। वाह! – Timothy003

+0

कभी भी देर से बेहतर नहीं;) –

6

यह मैं के लिए क्या देख रहा था है को दूर करता है:

खोजें: = {। * \। पाठ}

बदलें: = Int32.Parse (\ 1)

+0

आपको रेगेक्स में दूसरी अवधि से बच जाना चाहिए। –

+0

अच्छा पकड़ो। मुझे दिखाने के लिए वास्तव में \ चरित्र से बचने की जरूरत थी। –

2
मूल समस्या के लिए

बेहतर 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" का उपयोग कर।

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