जवाबों:
आपकी नियमित अभिव्यक्ति अच्छी लगती है, मुझे संदेह है कि समस्या यह है कि आपने नोटपैड ++ नहीं बताया है (मैं मानता हूं कि आप उस संपादक का उपयोग कर रहे हैं क्योंकि यह टैग में मौजूद है) जिसे आप अपने द्वारा परिभाषित समूह को रखना चाहते हैं, न कि पूरे मैच (जो आपके उदाहरण में पूरी लाइन होती है)।
संवाद में आपको यह देखना चाहिए:
खोज:
^([^:]*.[^:]*):.*$
से बदलो:
\1
दूसरे भाग का मतलब है कि आप वर्णों के पहले समूह को रखना चाहते हैं, या दूसरे शब्दों में, बाकी को मिटा देते हैं। इस मामले में आपके द्वारा परिभाषित नियमित अभिव्यक्ति का अर्थ है: उन सभी पंक्तियों को प्रतिस्थापित करें जिनकी दो से अधिक है ":" जो भी दूसरी "" घटना से पहले है
^(?:[^:]+:){2}\K.+$
या ^[^:]+:[^:]+\K:.+$
यदि आप दूसरे बृहदान्त्र को हटाना चाहते हैंLEAVE EMPTY
. matches newline
स्पष्टीकरण:
^ # beginning of line
(?: # start non capture group
[^:]+ # 1 or more any character that is not a colon
: # 1 colon
){2} # end group, must appear twice
\K # forget all we have seen until this position
.+ # 1 or more any character
$ # end of line
दिए गए उदाहरण के लिए परिणाम:
Test123:Password:
Test123:Password:
Test123:Password:
या (प्रयुक्त रेगेक्स पर निर्भर करता है)
Test123:Password
Test123:Password
Test123:Password