2011-03-03 11 views

उत्तर

84

खोजें:

^[#;].* 

कुछ भी नहीं के साथ बदलें। ^ एक रेखा की शुरुआत को इंगित करता है, [#;]# या ; से मिलान करने के लिए एक वर्ण वर्ग है, और .* लाइन में किसी भी अन्य चीज़ से मेल खाता है।

6.0 से पहले नोटपैड ++ के संस्करणों में, आप वास्तव में इसके रेगेक्स इंजन में सीमा के कारण लाइनों को हटाने में सक्षम नहीं होंगे; प्रत्येक पंक्ति मिलान के लिए रिक्त लाइनों में प्रतिस्थापन परिणाम। दूसरे शब्दों में, यह:

 
# foo 
; bar 
statement; 

बारी में होगा:

 


statement; 

हालांकि, प्रतिस्थापन Notepad ++ 6.0 में कार्य करेगा जब आप पैटर्न के अंत तक \r, \n या \r\n जोड़ने के लिए, पर निर्भर करता है जो न खत्म होने वाली अपनी फ़ाइल उपयोग कर रहा है लाइन, जिसका परिणाम:

 
statement; 
+9

से शुरू होने वाली सभी लाइनों का चयन करने के लिए आप खोज मोड "विस्तारित" और \ r \ n \ r \ n ढूंढकर रिक्त रेखाओं को प्रतिस्थापित कर सकते हैं। यदि आप खाली "प्रतिस्थापित" छोड़ देते हैं, तो आप रिक्त रेखाएं हटा देंगे। सावधान रहें, क्योंकि यह अन्य रिक्त लाइनों को हटा देगा जो आपके पहले प्रतिस्थापन द्वारा नहीं बनाए गए थे। – PaulF

+4

नोटपैड ++ 6 के रूप में, पूर्ण पीसीआरई रेगेक्स समर्थन के साथ,^(# |;)। * \ R \ n के लिए खोज और रिक्त स्थान के साथ प्रतिस्थापन (पाठ्यक्रम के सक्षम रेगेक्स विकल्प के साथ) पूरी तरह से काम करता है – Tao

+0

@ टाओ: अनुस्मारक के लिए धन्यवाद - मैं 6.0 समर्थन के साथ अपने सभी नोटपैड ++ उत्तरों को अपडेट करना भूल गया! मैं जल्द ही उस पर पहुंच जाऊंगा ... – BoltClock

2

शायद तुम

की कोशिश करनी चाहिए
^[#;].*$ 

^ भिखारी से मेल खाता है, $ अंत।

+0

काम नहीं करेगा, [स्किंटिला देखें] (http://www.scintilla.org/SciTERegEx.html)। अंत-ऑफ-लाइन वर्णों को छीन लिया जाता है। – stema

5

यह संभव है, लेकिन सीधे नहीं।

संक्षेप में, खोज पर जाएं, अपने रेगेक्स का उपयोग करें, "मार्क लाइन" जांचें और "सभी खोजें" पर क्लिक करें। यह उन सभी लाइनों के लिए बुकमार्क में परिणाम देता है।

खोज मेनू में एक बिंदु "बुकमार्क की गई रेखाएं हटाएं" voila है।

मैंने पाया जवाब यहाँ (सही जवाब दूसरा एक, नहीं स्वीकार किए जाते हैं है!): How to delete specific lines on Notepad++?

+0

लिंक के लिए +1 –

5

दूसरों के रूप में उल्लेख किया है, नोटपैड ++ 6.0 में और बाद में, यह संभव उपयोग करने के लिए है "बदलें" ";" से शुरू होने वाली सभी लाइनों को हटाने की सुविधा या "#"।

ताओ एक नियमित अभिव्यक्ति प्रदान करता है जो प्रारंभिक बिंदु के रूप में कार्य करता है, लेकिन यह सफेद-अंतरिक्ष के लिए जिम्मेदार नहीं है जो ";" या किसी दिए गए रेखा पर "#" वर्ण। उदाहरण के लिए, लाइनें जो ";" से शुरू होती हैं या "#" लेकिन "टैब्ड-इन" हैं, ताओ की नियमित अभिव्यक्ति का उपयोग करते समय हटाए जाएंगे, ^(#|;).*\r\n

ताओ की नियमित अभिव्यक्ति बोल्टक्लॉक के उत्तर में उल्लिखित चेतावनी के लिए जिम्मेदार नहीं है, या तो: सिस्टम में न्यूलाइन अक्षरों में भिन्नताएं।

^(\s)*(#|;).*(\r\n|\r|\n)? का उपयोग करने के लिए एक सुधार है, जो सफेद-स्थान और न्यूलाइन चरित्र भिन्नताओं के लिए जिम्मेदार है। साथ ही, पिछला ? उन मामलों को संभालता है जिनमें फ़ाइल की अंतिम पंक्ति # या ; से शुरू होती है, लेकिन एक नई लाइन के साथ समाप्त नहीं होती है।

उत्सुकता के लिए, यह संभव है कि किसी दिए गए दस्तावेज़ में किस प्रकार के न्यूलाइन वर्ण का उपयोग किया जाता है (और एक से अधिक प्रकार का उपयोग किया जा सकता है): देखें -> प्रतीक दिखाएं -> रेखा का अंत दिखाएं।

+0

आपके द्वारा सुझाए गए रेगेक्स दस्तावेज़ की अंतिम पंक्ति (यदि यह एक प्रासंगिक रेखा है) को ढूंढने में विफल रहता है। – maja

+1

अच्छा पकड़, @maja! अंत में '?' को जोड़ने का प्रयास करें, इस तरह: '^ (\ s) * (# |;)। * (\ R \ n | \ r | \ n)?'। मैं तदनुसार मूल उत्तर अपडेट करूंगा। धन्यवाद! –

-1

नोटपैड ++ में, आप अपनी क्वेरी से मेल खाने वाली सभी पंक्तियों को बुकमार्क करने के लिए संवाद संवाद में मार्क टैब का उपयोग कर सकते हैं जो रेगेक्स या सामान्य (वाइल्डकार्ड) हो सकता है।

फिर खोज> बुकमार्क> बुकमार्क लाइनों को हटाएं।

+0

वही उत्तर पहले से ही ** स्टेमा ** द्वारा लिखा गया है लेकिन यहां आपके उत्तर में बहुत कम जानकारी है। पुराने प्रश्नों के नए उत्तरों को जोड़ने के दौरान अच्छा हो सकता है कि वे केवल तभी उपयोगी होते हैं जब वे नई जानकारी प्रदान करते हैं। उत्तर जो केवल अन्य उत्तरों को दोहराते हैं, उनके पास कोई मूल्य नहीं है, वे केवल अव्यवस्था हैं। – AdrianHHH

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