दृश्य स्टूडियो, ढूँढें और बदलें, regex


143

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

\#include \<[a-z\.h]+\>काम नहीं किया और नहीं होगा; यह कथन #include "whatever.h"को प्रतिस्थापित करता है #include <[a-z.h]+>। मैं रीप्क्स को कैसे बनाए रखने के लिए फ्रेम को बनाए रख सकता हूं whatever.h?

जवाबों:


225

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

संस्करणों के लिए विज़ुअल स्टूडियो 2012 और ऊपर:
VS2012 .NET फ्रेमवर्क के साथ शुरू होने वाले नियमित एक्सप्रेशन का उपयोग किया जाता है। तो वहाँ यह होना चाहिए:
मिल include "([a-zA-Z]+\.h)", के
साथ बदलें include <$1>


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

44
यह अब Visual Studio 2012 में अलग है। $ 1 का उपयोग \ N के बजाय किया जाना चाहिए। () अब प्रतिस्थापित करता है {}। अब और सभी के साथ अधिक संगत। msdn.microsoft.com/en-us/library/2k3te2cs(v=vs.110).aspx
oillio

1
[a-zA-Z0-9_]अधिक फ़ाइल नाम कैप्चर करने के लिए उपयोग करें ।
रेनियर टॉरेनबेक

1

आपको केस के साथ रेगेक्स एक्सप्रेशन के लिए मैच केस और रेगुलर एक्सप्रेशंस दोनों का चयन करना होगा। एल्स [az] काम नहीं करेगा।यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.