Python 如何将文本拆分为(a)、(b)?

Python 如何将文本拆分为(a)、(b)?,python,regex,Python,Regex,我想将我的文本分为子部分(a),(b) import re s = "(a) First sentence. \n(b) Second sentence. \n(c) Third sentence." l = re.compile('\(([a-f]+)').split(s) 通过我的正则表达式,我得到了7个元素的列表: ['', 'a', ') First sentence. \n', 'b', ') Second sentence. \n', 'c', ') Thi

我想将我的文本分为子部分
(a)
(b)

import re

s = "(a) First sentence. \n(b) Second sentence. \n(c) Third sentence."

l = re.compile('\(([a-f]+)').split(s)
通过我的正则表达式,我得到了7个元素的列表:

['', 'a', ') First sentence. \n', 'b', ') Second sentence. \n', 'c', ') Third sentence.']
但我想要的是一个包含3个元素的列表, 第一项应为(a)和第一句、第二项(b)以及第三项和最后一项(c):

您可以使用
?=
在字符串后面的部分拆分字符串,模式
(显示字母\u从\u a\u到\u f\u)

输出:

['', '(a) Lorem ipsum dolor sit amet, consectetur adipiscing elit. \n', '(b) Nullam porta aliquet ornare. Integer non ullamcorper nibh. Curabitur eu maximus odio. Mauris egestas fermentum ligula non fermentum. Sed tincidunt dolor porta egestas consequat. Nullam pharetra fermentum venenatis. Maecenas at tempor sapien, eu gravida augue. Fusce nec elit sollicitudin est euismod placerat nec ut purus. \n', '(c) Phasellus fermentum enim ex. Suspendisse ac augue vitae magna convallis dapibus.']
如果不需要空字符串,可以使用:

如果不希望每个字符串上都有尾随的换行符,可以使用:

您可以使用
?=
在字符串后面的部分拆分字符串,模式
(显示字母\u从\u a\u到\u f\u)

输出:

['', '(a) Lorem ipsum dolor sit amet, consectetur adipiscing elit. \n', '(b) Nullam porta aliquet ornare. Integer non ullamcorper nibh. Curabitur eu maximus odio. Mauris egestas fermentum ligula non fermentum. Sed tincidunt dolor porta egestas consequat. Nullam pharetra fermentum venenatis. Maecenas at tempor sapien, eu gravida augue. Fusce nec elit sollicitudin est euismod placerat nec ut purus. \n', '(c) Phasellus fermentum enim ex. Suspendisse ac augue vitae magna convallis dapibus.']
如果不需要空字符串,可以使用:

如果不希望每个字符串上都有尾随的换行符,可以使用:


评论不用于扩展讨论;此对话已结束。评论不用于扩展讨论;这段对话已经结束。
['', '(a) Lorem ipsum dolor sit amet, consectetur adipiscing elit. \n', '(b) Nullam porta aliquet ornare. Integer non ullamcorper nibh. Curabitur eu maximus odio. Mauris egestas fermentum ligula non fermentum. Sed tincidunt dolor porta egestas consequat. Nullam pharetra fermentum venenatis. Maecenas at tempor sapien, eu gravida augue. Fusce nec elit sollicitudin est euismod placerat nec ut purus. \n', '(c) Phasellus fermentum enim ex. Suspendisse ac augue vitae magna convallis dapibus.']
l = list(filter(None, l))
l = list(map(str.strip, l))
l = list(map(str.rstrip, l))