पैराग्राफ को विभाजित करने के लिए पाइथन में उपयोग करने के लिए नियमित अभिव्यक्ति कैसे लिखती है?पाइथन नियमित अभिव्यक्ति को अनुच्छेदों को विभाजित करने के लिए
एक अनुच्छेद 2 लाइनब्रेक्स (\ n) द्वारा परिभाषित किया गया है। लेकिन लाइन ब्रेक के साथ किसी के पास रिक्त स्थान/टैब की एक साथ हो सकती है, और इसे अभी भी अनुच्छेद के रूप में माना जाना चाहिए।
मैं अजगर का उपयोग कर रहा हूं ताकि समाधान पाइथन के regular expression syntax का विस्तार कर सके। ((?P...)
सामान का उपयोग कर सकते)
उदाहरण:
the_str = 'paragraph1\n\nparagraph2'
# splitting should yield ['paragraph1', 'paragraph2']
the_str = 'p1\n\t\np2\t\n\tstill p2\t \n \n\tp3'
# should yield ['p1', 'p2\t\n\tstill p2', 'p3']
the_str = 'p1\n\n\n\tp2'
# should yield ['p1', '\n\tp2']
सबसे अच्छा मैं के साथ आ सकता है
है: r'[ \t\r\f\v]*\n[ \t\r\f\v]*\n[ \t\r\f\v]*'
, अर्थात
import re
paragraphs = re.split(r'[ \t\r\f\v]*\n[ \t\r\f\v]*\n[ \t\r\f\v]*', the_str)
लेकिन यह बदसूरत है। कुछ भी बेहतर है?
संपादित:
सुझाव को अस्वीकार कर दिया:
r'\s*?\n\s*?\n\s*?'
-> यही कारण है कि उदाहरण 2 बनाना होगा और 3, असफल के बाद से \s
\n
भी शामिल है, तो यह 2 \n
से अधिक के साथ पैरा टूट जाता है की अनुमति होगी।
वहाँ है। [^ \ एस \ n] :) –