2010-06-30 11 views
105

मैं विजुअल स्टूडियो 2005 में कार्यक्षमता खोजने और बदलने के लिए #include <whatever.h> के साथ सभी #include "whatever.h" को प्रतिस्थापित करने का प्रयास कर रहा हूं। मैंने शामिल कथन को खोजने के लिए regex \#include \"[a-z\.h]+\" का उपयोग किया। लेकिन मैं सोच रहा हूं कि प्रतिस्थापन regex कैसे फ्रेम।विजुअल स्टूडियो, ढूंढें और बदलें, regex

काम नहीं किया और नहीं करेगा; यह के साथ #include "whatever.h" कथन को प्रतिस्थापित करता है। whatever.h को बनाए रखने के लिए मैं प्रतिस्थापन रेगेक्स को कैसे फ्रेम करूं?

उत्तर

168

संस्करणों के लिए से पहले दृश्य स्टूडियो 2012:
यह काम करता है जब मैं इस कार्य करें:
include "{[a-zA-Z]+\.h}",
include <\1> के साथ बदलें पाते हैं।
आपके प्रश्न के लिए सबसे प्रासंगिक भाग घुंघराले ब्रेसिज़ {} और पीछे संदर्भ \1: \n खोज अभिव्यक्ति में घुंघराले ब्रेसिज़ द्वारा इंगित n'th समूह के संदर्भ हैं।

संस्करणों Visual Studio 2012 & अप के लिए:
VS2012 .नेट फ्रेमवर्क नियमित अभिव्यक्ति के साथ शुरू किया जाता है। तो यह होना चाहिए:
include "([a-zA-Z]+\.h)",
include <$1> के साथ प्रतिस्थापित करें।

+4

यह मानक नियमित अभिव्यक्ति वाक्यविन्यास से अलग है जो इस कार्यक्षमता के लिए कोष्ठक का उपयोग करता है। –

+2

यह अलग है, लेकिन हे, हम इसे बदल नहीं सकते ... – Miel

+34

यह अब विजुअल स्टूडियो 2012 में अलग है। $ 1 के बजाय $ 1 का उपयोग किया जाना चाहिए।() अब {} बदलता है। अब हर किसी के साथ अधिक संगत। http://msdn.microsoft.com/en-us/library/2k3te2cs(v=vs.110).aspx – oillio

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