एक सूची के रूप में सभी नियमित अभिव्यक्ति मैचों को टेक्स्टपैड या नोटपैड ++ में निर्यात करें


28

टेक्स्टपैड या नोटपैड ++ में एक एकल सूची के रूप में, नियमित अभिव्यक्ति खोजने के लिए सभी मैचों को निर्यात करने का विकल्प है?

एक बड़ी टेक्स्ट फ़ाइल में, मैं नियमित अभिव्यक्ति का उपयोग करते हुए टैग्स (%% में संलग्न शब्द) खोज रहा हूं %\< and \>%, और सभी मैचों को एक सूची के रूप में चाहता हूं, ताकि मैं एक्सेल का उपयोग करके डुप्लिकेट को हटा सकूं और अद्वितीय टैग की सूची प्राप्त कर सकूं।


यदि आप नोटपैड ++ के लिए RegexExtract प्लगइन का उपयोग करते हैं, तो यह आपके लिए डुप्लिकेट को हटा सकता है और एक्सेल के साथ पोस्ट-प्रोसेस करने की कोई आवश्यकता नहीं है।
आर। Schreurs

जवाबों:


53

आप Notepad ++ में Backreferences और Find और Mark कार्यक्षमता का उपयोग करके इसे प्राप्त कर सकते हैं ।

  1. रेगेक्स (कहते हैं %(.*?)%) का उपयोग करके मैच खोजें और इसके द्वारा प्रतिस्थापित करें \n%\1%\n, इसके बाद हमारे पास अलग-अलग लाइनों में हमारा लक्षित शब्द होगा (अर्थात कोई भी रेखा एक से अधिक मिलान शब्द नहीं होगी)

  2. खोज का उपयोग करें -> ढूँढें -> regex के साथ प्रत्येक पंक्ति को चिह्नित करने के लिए मार्क कार्यक्षमता %(.*?)%और पाठ को चिह्नित करने से पहले ' बुकमार्क लाइन ' पर टिक करना याद रखें

  3. खोज का चयन करें -> बुकमार्क -> अचिह्नित लाइनों को हटा दें
  4. शेष पाठ को सहेजें। यह आवश्यक सूची है।

मेरे पास एक और फ़ाइल है <%% के बजाय टैग के रूप में, मैंने <((? *?)> और \ n <\ 1> \ n के साथ प्रयास किया, लेकिन इसका काम नहीं कर रहा है, कृपया मदद करें।
किरणशैल

आप का स्वागत है :) मेरे लिए इसके लिए <> भी काम कर रहा है। क्या वहां नेस्टेड <> हैं? क्या आप विस्तार से बता सकते हैं कि वास्तव में 'काम नहीं कर रहा है' क्या है?
अंकित

मैं पहले की तरह टैग की एक सूची बनाने की कोशिश कर रहा हूं, लेकिन इनमें से एक बार <>, मैं <(। *?)> का उपयोग कर रहा हूं% ((। *?)% और \ n के बजाय \ n <1> \ n। % \ 1% \ n, यह एक नमूना फ़ाइल का लिंक है wikisend.com/download/158050/tags.txt
Kiranshell

मैंने इसे प्रदान किए गए पाठ के साथ फिर से उपयोग करने की कोशिश की और <(। *?)>, सामान्य रूप से काम कर रहा है। मुझे टैग की आपूर्ति <आपूर्ति> <होस्टनाम> ..... और इतने पर
अंकित

कृपया सही त्रुटि / समस्या का उल्लेख करें। मूर्खतापूर्ण लग सकता है लेकिन कर्सर को ऊपर ले जाने के लिए याद रखें। मैं अक्सर वह गलती करता हूं और खोज से कोई नतीजा नहीं निकलता है ... :)
अंकित

5

इस कर रही है में Notepad ++ एक अनिवार्य आवश्यकता? आप विंडोज पर हैं या यूनिक्स के कुछ रूप? यदि आप विंडोज पर हैं, तो आप इसे (आंशिक रूप से) कमांड प्रॉम्प्ट से कर सकते हैं:

findstr / r "% [az]। * [az]%% [az]%" your_file > 2_ile

findstrअस्पष्ट रूप से प्रेरित है grep, इसलिए इस new_file में आपके खोज मापदंड से मेल खाती सभी लाइनें होंगी ; फिर आप अवांछित पाठ (पहले% के बाईं ओर और दूसरे के दाईं ओर) को हटाने के लिए नोटपैड ++ का उपयोग कर सकते हैं।


और, ज़ाहिर है, यदि आप यूनिक्स पर हैं, तो आप इसके साथ समान कार्य कर सकते हैं sed


बहुत दूर से सबसे अच्छा जवाब!
चार्ल्स-एंटोनी फोरलेन

2

एक नोटपैड ++ प्लगइन है जो मिलान किए गए रेगेक्स एक्सप्रेशन को नए टैब में नई फ़ाइल में कॉपी कर सकता है। RegexExtract

क्योंकि मुझे नोटपैड ++ के लिए कोई प्लगइन नहीं मिला जो वर्तमान दस्तावेज़ या कुछ फ़ाइलों को किसी स्थान से कुछ अतिरिक्त सेटिंग्स (जैसे केस रूपांतरण) से निकाल सकता है, मैंने इसे स्वयं बनाने का प्रयास करने का निर्णय लिया। (...) प्लगइन इंटरफ़ेस बहुत सीधा है (...)। (...) "खोजें", "बदलें" और "मास्क" फ़ील्ड C ++ 11 रेगेक्स सिंटैक्स का उपयोग करते हैं। फ़ाइलों से निकालना अभी UTF8 में उन लोगों के लिए काम करता है।

प्रश्न के अनुरूप डायलॉग इनपुट संपादित करें

यहाँ छवि विवरण दर्ज करें

छवि में आप देख सकते हैं कि संवाद कैसे भरें। मुझे लगता है कि एक शब्द में रिक्त स्थान नहीं है, आदि, केवल \ w द्वारा मेल किए गए वर्ण। विशेष रूप से:

  • शब्द का चयन करने की अनुमति देने के लिए, कोष्ठक वर्णों के बिना, कोष्ठक की एक जोड़ी का उपयोग करें।
  • पहले मैच का चयन करने के लिए , बदलें के साथ विकल्प निकालें चुनें । अन्यथा, आपको सभी $ 1, $ 2, आदि का एक स्तंभ आउटपुट मिलेगा।
  • पूरे मैच छोड़ने के लिए $ छोड़ें ... की जाँच करें ।
  • प्रत्येक मैच को केवल एक बार रिपोर्ट करने के लिए फ़िल्टर को अनन्य रूप से जांचें ।
  • परिणाम प्राप्त करने के लिए निकालने के लिए क्लिक करें । ( खोज केवल मैचों को ढूंढती है, लेकिन रिपोर्ट नहीं करती है)।

अच्छा प्लग-इन, वही करता है जो पूछा गया था।
आर। Schreurs

64-बिट नोटपैड ++ के साथ काम नहीं करता है
इवान चाऊ

0

टेक्स्टपैड में, आप Findहमेशा की तरह बॉक्स लाएँगे , फिर Mark Allबटन का उपयोग करेंगे ।

वहाँ से, Copy Bookmarked Linesफ़ंक्शन का उपयोग करें। (मेनू संपादित करें> अन्य कॉपी करें> बुकमार्क की गई लाइनें।)


व्यक्तिगत रूप से, मैं उस सटीक ऑपरेशन को इतनी बार करता हूं कि मैंने कॉपी किए गए बुकमार्क फ़ंक्शन फ़ंक्शन के लिए एक कीबोर्ड शॉर्टकट कॉन्फ़िगर किया है: Ctrl + Alt + c।
daveloyall

मैं इस प्रश्न पर आया था क्योंकि मैं नोटपैड ++ प्रश्न की खोज कर रहा था। एक वफादार और अनपेक्षित टेक्स्टपैड उपयोगकर्ता के रूप में कई वर्षों के बाद, मैं नोटपैड ++ (जीपीएल) पर स्विच कर रहा हूं।
daveloyall
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.