मेरे पास निम्न पाठ है:
.clk,
.rst_b,
.phase_in
मैं चाहता हूँ कि follwing:
.clk(clk),
.rst_b(rst_b),
.phase_in(phase_in)
अर्थात्-
- एक अवधि के साथ शुरू होने वाली एक स्ट्रिंग ढूंढें और एक अनुगामी अल्पविराम को छोड़कर जो मौजूद नहीं हो सकता है या नहीं।
- कोष्ठक के अंदर पाए गए स्ट्रिंग की अवधि को छोड़कर, स्ट्रिंग को जोड़ें।
नोटपैड ++ में फ़ंक्शन "नहीं है और प्रतिस्थापित" है"ढूंढें और संलग्न करें" इसलिए चरण दो को निम्नानुसार लिखा जा सकता है - स्ट्रिंग को स्वयं की प्रतिलिपि के साथ बदलें और इसके बाद स्वयं को कॉपी करें जो कोष्ठक में संलग्न है।
चरण एक पूरा हो गया है .w+
। चरण 2 पर कोई विचार?
धन्यवाद!
उत्तर:
जवाब के लिए 0 № 1आप इस तरह से एक साधारण रेगेक्स का उपयोग कर सकते हैं:
जवाब के लिए 2 № 2
हाँ तुम कर सकते हो! अपने प्रतिस्थापन में मिलान किए गए शब्द को संदर्भित करने के लिए कैप्चर समूहों का उपयोग करें।
बदलने के .(w+)
साथ में .1(1)
.
कोष्ठक का मतलब है कि हम एक संदर्भ रखना चाहते हैं w+
। हम उस संदर्भ को एक्सेस करते हैं 1
प्रतिस्थापन में।
जवाब के लिए 2 № 3
आप निम्नलिखित नियमित अभिव्यक्ति का उपयोग कर सकते हैं। यह डॉट अक्षर के बाद शब्द वर्णों को पकड़ता है
Find: ^.(w+)
Replace: .1(1)
व्याख्या:
^ # the beginning of the string
. # "."
( # group and capture to 1:
w+ # word characters (a-z, A-Z, 0-9, _) (1 or more times)
) # end of 1
प्रतिस्थापन में, हम उपयोग करते हैं 1
मिलान करने और समूह पर कब्जा करने के लिए क्या किया गया था #1
. ध्यान दें: आपको वास्तव में उन्हें प्रदर्शित करने के लिए प्रतिस्थापन में कोष्ठक से बचने की आवश्यकता है।
उत्तर के लिए 1 № 4
उपयोग 1
खोज .(w+)
और के साथ प्रतिस्थापित करें .1(1)
जवाब के लिए 0 № 5
क्या ढूँडो: .([^,]+)
रिप्लेसमेंट: .$1($1)
सुनिश्चित करें कि रेगेक्स एक्सप्रेशन रेडियो बटन को चेक किया गया है और डॉट मैच नईलाइन अनियंत्रित है।
पैटर्न स्पष्टीकरण:
. "."
( group and capture to 1:
[^,]+ any character except: "," (1 or more times)
) end of 1