मुझे कई लाइनों को फैलाने वाले टेक्स्ट के विरुद्ध मिलान करते समय पाइथन रेगेक्स को काम करने में कुछ परेशानी हो रही है। 'Some_Varying_TEXT' हिस्सा है, और बड़े पाठ कि यह नीचे दो पंक्तियों आता है की तर्ज के सभी: उदाहरण के लिए पाठ ('\ n' एक नई पंक्ति है)पाठ की एक बहुपक्षीय ब्लॉक से मेल खाने वाली नियमित अभिव्यक्ति
some Varying TEXT\n
\n
DSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF\n
[more of the above, ending with a newline]\n
[yep, there is a variable number of lines here]\n
\n
(repeat the above a few hundred times).
मैं दो बातों पर कब्जा करना चाहते हैं एक कैप्चर (मैं बाद में न्यूलाइन अक्षरों को बाहर कर सकता हूं)। मैं कुछ दृष्टिकोण के साथ की कोशिश की है:
re.compile(r"^>(\w+)$$([.$]+)^$", re.MULTILINE) # try to capture both parts
re.compile(r"(^[^>][\w\s]+)$", re.MULTILINE|re.DOTALL) # just textlines
और कोई भाग्य के साथ करने के लिए जिसमें विविधताओं का एक बहुत। आखिरी वाला एक पाठ की पंक्तियों को एक-एक करके मेल खाता है, जो कि मैं वास्तव में नहीं चाहता हूं। मैं पहले भाग को पकड़ सकता हूं, कोई समस्या नहीं, लेकिन मुझे अपरकेस टेक्स्ट की 4-5 लाइनों को पकड़ने की प्रतीत नहीं होती है। मुझे मैच.group (1) कुछ _ होना चाहिए _ टेक्स्ट और समूह (2) लाइन 1 + लाइन 2 + लाइन 3 + आदि होने के लिए खाली लाइन का सामना करना पड़ेगा।
यदि कोई उत्सुक है, तो यह प्रोटीन बनाने वाले एमिनोसिड का अनुक्रम माना जाता है।
वहाँ पहली पंक्ति और अपरकेस पाठ के अलावा फाइल में कुछ और है? मुझे यकीन है कि तुम क्यों बजाय न्यू लाइन पात्रों पर सभी पाठ बंटवारे और "some_Varying_TEXT" के रूप में पहला तत्व लेने का एक regex का प्रयोग करेंगे नहीं हूँ। – UncleZeiv
हां, रेगेक्स इसके लिए गलत उपकरण है। – hop
आपके नमूना पाठ में अग्रणी '>' वर्ण नहीं है। इसे होना चाहिए? – MiniQuark