/ / TextMate regex खोज का परिणाम नई विंडो में सहेजें - टेक्स्टमेट

टेक्स्टमैट रीजिक्स खोज के परिणाम को नई विंडो में सहेजें - टेक्स्टमैट

मैं TextMate के भीतर एक खोज करने में सक्षम होना चाहता हूं, लेकिन परिणामी मैचों को एक अलग फ़ाइल में कॉपी कर सकता हूं।

मैं निम्नलिखित अभिव्यक्ति का उपयोग कर रहा हूं:

(?<=()(.*?)(?=))

किसी ईमेल पंक्ति के कोष्ठक के भीतर एम्बेडेड ईमेल पते से मेल खाने के लिए, ऐसा कुछ:

A N Other (another@example.com)

जिस फ़ाइल से मैं काम कर रहा हूं, उसमें कुछ सौ प्रविष्टियां हैं, जो सभी सीआर-एलएफ (एन) द्वारा अलग हैं।

मैं केवल ईमेल निकालने में सक्षम होना चाहता हूंआगे की प्रक्रिया के लिए एक नई फ़ाइल में पाठ का खंड। हालाँकि, TextMate के भीतर खोज संवाद केवल मिलान किए गए पाठ की जगह का समर्थन करता है। मैं सोच रहा था कि क्या इसे पूरा करने का कोई तरीका है।

उत्तर:

उत्तर № 1 के लिए 4

यह सुपर पुराना है, लेकिन आप TextMate2 में निम्न कार्य कर सकते हैं:

  1. अपने regex खोज करें।
  2. परिणामों के दाईं ओर खोज बॉक्स में गियर मेनू पर क्लिक करें।
  3. प्रतिलिपि विकल्प का चयन करें जो आपको चाहिए। इस मामले में, "मिलान भागों की प्रतिलिपि बनाएँ।"

http://manual.textmate.org/searching.html#search-results


जवाब के लिए 2 № 2

आदेश Bundles > Text > Filtering > Copy Matching Lines into New Document एक अच्छा प्रारंभिक बिंदु हो सकता है। आपको हालांकि पूर्ण लाइनों का मिलान करना होगा, इसलिए वास्तविक टेक्स्ट जिसे आप निकालना चाहते हैं, उसके पहले और बाद में कुछ भी करने के लिए एक regexp का निर्माण करें।


उत्तर № 3 के लिए -1

जहाँ तक मुझे पता है, TextMate तुम क्या नहीं कर सकतेहासिल करना चाहते हैं। हालाँकि, जैसा कि आपने पहले ही उल्लेख किया है कि आप अपनी फ़ाइल को संसाधित करना चाहते हैं, यानी आपको एक सरल स्क्रिप्ट लिखनी चाहिए जो इसे करती है। यदि आपको बहुत बार ऐसी फ़ाइलों को पार्स करने की आवश्यकता है, तो यह TextMate (बंडल) बंडल संपादक> बंडल संपादक> नई कमांड) के लिए एक कमांड लिखने के लायक हो सकता है। यदि यह एक बार की गतिविधि है, तो आप संभवतः कमांड लाइन से सब कुछ करने के लिए बेहतर हैं, अर्थात् अपनी फ़ाइल को संसाधित करने और इसे दूसरे में आउटपुट करने के लिए grep, sed और awk (यदि आवश्यक हो) का उपयोग करें। या अपनी पसंद की स्क्रिप्टिंग भाषा का उपयोग करें। रूबी में यह कुछ ऐसा दिखेगा

matches =[]
File.open(ARGV.first, "r") do |file|
while line = file.gets
match = file.match(/your_regular_expression_with_grouping/)
matches << match unless match.nil?
end
end
# write out matches which are saved in matches as follows:
# matches[i][0] contains original line of text,
# matches[i][1] result of first grouping,
# matches[i][2] result of second grouping, ...