2010-02-12 12 views
30

मैं अपनी सभी स्रोत कोड फ़ाइलों के माध्यम से जाना चाहता हूं और k_Xyyy के प्रत्येक अवसर को k_xyyy के साथ प्रतिस्थापित करना चाहता हूं (k_ के बाद पहले अक्षर को अपरकेस से लोअरकेस तक स्विच करें)।ग्रहण में regex का उपयोग कर अपरकेस अक्षर को लोअरकेस अक्षरों में कैसे बदलें?

मैं एकाधिक फ़ाइलों को खोजने और बदलने के लिए ग्रहण संवाद का उपयोग कर रहा हूं। अभी मेरे पास regex \bk_([A-Z]) है।

मैं रेगेक्स की प्रतिस्थापन स्ट्रिंग कैसे निर्दिष्ट करूं?

+0

क्या आप इसके लिए ग्रहण की पुन: फैक्टरिंग कार्यक्षमता का उपयोग नहीं कर सकते? –

+0

जब भी मैं कॉलम नाम उपसर्ग के साथ तालिकाओं से इकाइयों को उत्पन्न करता हूं तो मुझे नियमित आधार पर इसकी आवश्यकता होती है। – chinto

उत्तर

11

यह संभव नहीं है। या तो ग्रहण के पुनः फैक्टरिंग कार्यक्षमता का उपयोग, या एक बार में एक की जगह:

regex  : \bk_A 
replacement : k_a 

regex  : \bk_B 
replacement : k_b 

... 

regex  : \bk_Z 
replacement : k_z 
15

मैं सिर्फ एक ही काम के लिए संकल्प लिया विम :)

की शक्ति का उपयोग (जावा इंटरफ़ेस में .net इंटरफ़ेस बढ़ने की बात थी)
void DoMethod1 -> void doMethod1 
Foo PerformMethod2 -> Foo performMethod2 
:%s/\(^\s*\w\+\s\+\)\([A-Z]\)/\1\L\2/g 

यहां हम (वैकल्पिक इंडेंटेशन के बाद वापसी प्रकार के बाद व्हाइटस्पेस के बाद) (अपरकेस अक्षर) खोज रहे हैं। ब्रेसेस समूह को पकड़ रहे हैं। फिर हम पहले कैप्चरिंग समूह \ 1 लोअरकेस \ एल सेकेंड कैप्चरिंग समूह \ 2 को प्रतिस्थापन कर रहे हैं।

यह निश्चित रूप से आपको विम में फ़ाइल खोलने की आवश्यकता है, लेकिन फिर भी यह बहुत तेज़ है और फिर ग्रहण में हाथ से एक ही चीज़ कर रहा है।

0

(मेरे लिए, के बाद से मैं सिर्फ प्रोग्रामिंग शुरू कर दिया, यह सोचने के लिए और अधिक मजेदार था के बारे में) $pattern_to_change ले लो और ascii से परिवर्तित का उपयोग कर ord() .Take जिसके परिणामस्वरूप दिसम्बर संख्या दशमलव में और 32. जोड़ने फिर ascii को वापस $desired_pattern कन्वर्ट chr() का उपयोग कर।

या बस SublimeText डाउनलोड करें और सभी घटनाओं को ढूंढने के लिए अपनी खोज और प्रतिस्थापन सुविधा का उपयोग करें और उन्हें अंतर टेक्स्ट के साथ बदलें (सब्लिमे में भी regex है)।

मुझे यकीन है कि आप एक अरब से हाथ बदल सकते हैं क्योंकि यह पोस्ट 5 साल की है, लेकिन आप इसे 5 मिनट में सब्लिमे के साथ पूरा कर सकते थे।

वास्तव में उपयोगी टेक्स्ट संपादक।

1

मुझे स्रोत कोड के एक बड़े हिस्से के लिए ऐसा करने की आवश्यकता है जहां स्ट्रिंग अक्षर को लोअरकेस में परिवर्तित करने की आवश्यकता होती है। मुझे नोटपैड ++ और पायथन स्क्रिप्ट प्लगइन का उपयोग करने का एक तरीका मिला, जैसा कि here उपयोग किया गया था।

+5

नोटपैड ++ में आप पहले मिलान करने वाले समूह को लोअरकेस अक्षरों में बदलने के लिए प्रतिस्थापन स्ट्रिंग में '\ L $ 1 \ E' का उपयोग कर सकते हैं। ऊपरीकेस के लिए \ U ... \ E के साथ वही काम करता है – fuemf5

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