2011-04-08 10 views
5

मैं ग्रहण खोज/प्रतिस्थापन का उपयोग कर एक विरासत सॉफ्टवेयर में log4j जोड़ने की कोशिश कर रहा हूं।रेगेक्स द्वारा मिलान किए गए पाठ को दोहराने के लिए कैसे?

विचार सभी वर्ग घोषणाओं को ढूंढना और उन्हें प्रतिस्थापित करना है, घोषणा के साथ ही अगली पंक्ति में लॉगर की परिभाषा।

खोज

".*class ([A-Z][a-z]+).*\{" 

बदल देते हैं:

"final static Logger log = Logger.getLogger($1.class);" 

मैं कैसे की जगह स्ट्रिंग के लिए मिलान पैटर्न (वर्ग परिभाषा) पहले जोड़ें कर सकते हैं?

खोज:

(.*class ([A-Z][a-z]+).*\{) 

बदल देते हैं:

+0

आप जवाब के लिए धन्यवाद, मुझे कुछ ही घंटों बचा लिया। अब मैं "$ 0 \ n \ n \ tfinal स्थिर लॉगर लॉग = Logger.getLogger ($ 1.class) का उपयोग करता हूं;" स्ट्रिंग को प्रतिस्थापित करने के रूप में। – stacker

उत्तर

3

मैं आपको इसकी आवश्यकता है लगता है।

$1\Rfinal static Logger log = Logger.getLogger($2.class); 
+0

नोट करें \ आर जो लाइन ब्रेक बनाता है। और शायद आप कुछ टैब \ t जोड़ना चाहते हैं ताकि लॉगर घोषणा इंडेंट हो। – janhink

1

तुम हमेशा पूरी बात पर कब्जा और में रख सकते हैं आंतरिक कब्जा समूह में रहती है एक दूसरा बैकरेफर।

खोजें:

(.*class ([A-Z][a-z]+).*\{)

से बदले:

$1 final static Logger log = Logger.getLogger($2.class);

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