रेगेक्स मैच के आसपास कुछ पंक्तियों को कैसे कैप्चर किया जाए?


8

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

ABCDEFGHADEFGH
ABCDEFGHADEFGH
ABCDEFGHDEFGHABCDEFGH
ABCDEFGHDEFGHABCDEFGH
ABCDEFGHABCDEFGHABCDEFGH
ABCDEFGHABCDEFGHABCDEFGH
XXXXXXXX

मैं XXXXXXXX के ऊपर की 2 पंक्तियों को पकड़ना चाहता हूं।

किसी भी सहायता की सराहना की जाएगी। नोट: लाइब्रेरी री का उपयोग करके पायथन के साथ


1
क्या सॉफ्टवेयर का उपयोग? अलग-अलग कार्यक्रमों के बारे में अलग-अलग विचार होते हैं कि regexp क्या है।
डेविड रिचरबी

विशेष रूप से या किसी उपकरण / भाषा में पायथन का उपयोग करना?
kenorb

यदि आप अजगर का उपयोग कर रहे हैं, तो पूरे को एक सरणी में डंप करना बेहतर हो सकता है, जहां प्रत्येक पंक्ति का अपना तत्व है। फिर आप सरणी के माध्यम से लूप करते हैं, XXXXXXXX को ढूंढते हुए, एक बार लाइनों को प्राप्त करने के लिए उस आइटम -1 और -2 के सूचकांक का उपयोग करते हैं।
LPChip

हाय आदमी सलाह के लिए धन्यवाद, मैं यह पहले से ही एक पाश के साथ किया था, लेकिन सोच रहा था कि कैसे regex के साथ क्या करना है
takobaba

जवाबों:


15

निम्नलिखित RegEx लाइन के पहले लाइनों की एक चर राशि के लिए परीक्षण करता है XXXXXXXXऔर उन्हें पहले कैप्चर समूह में वापस करता है।

((.*\n){2})XXXXXXXX

  1. (.*\n)एक स्ट्रिंग के लिए परीक्षण \n, एक नई रेखा के साथ।
  2. {2} इस 2 बार मात्रा।
  3. () चारों ओर यह सुनिश्चित करता है कि सभी लाइनें एक कैप्चर समूह में आती हैं।
  4. XXXXXXXX वह स्ट्रिंग है जिसे पाठ के साथ समाप्त होना है।

अब पायथन में, आप p.match(regex)[0]पहले कैप्चर समूह को वापस करने के लिए उपयोग कर सकते हैं ।


4
सावधान रहें यह विंडोज पर मुद्दों का कारण बन सकता है। अगर ऐसा होता है, तो \r\nबस के बजाय प्रयास करें \n
Qix - मोनासा ने

1
बेशक, यह केवल एक पंक्ति से मेल खाता है जो इसके साथ शुरू होता है XXXXXXXX(लेकिन यह जरूरी नहीं कि इसके साथ समाप्त होता है XXXXXXXX)।
जी-मैन का कहना है कि 'मोनिका' को

0

Erikgaal के उत्तर में जोड़कर, किसी भी टैब / श्वेत रिक्त स्थान से मिलान करने के लिए, xxxxxx से पहले एक अतिरिक्त का उपयोग करें।

((। * \ N) {2})। * Xxxxxxx


1
खैर, बस टैब / रिक्त स्थान से .*मेल नहीं खाएंगे ; यह किसी भी चीज से मेल खाएगा (उदाहरण के लिए, "द क्विक ब्राउन XXXXXXX")।
जी-मैन ने कहा कि मोनिका की
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.