Python regular expressions - how to capture the rest of text which is uncaptured
亲爱的社区成员!
我正在努力解决regex问题。目的是将文本拆分为单独的部分,并使用关键字(consetetur tempor incidedunt proident consequat)作为分隔符,并将关键字添加到捕获的文本部分。再次开始捕获新组,直到发现另一个关键字。不幸的是,我一直在寻找捕获最后一位文本的解决方案,它没有关键字,必须添加到最后一个捕获组或新组的末尾。使用regex甚至可以解决这个问题吗?
请注意底部的链接
正则表达式:(.*?)(连续性节奏不连贯前瞻性后果)
文字:Lorem ipsum dolor sit amet,Concettetur adipiscing elit,sed do eiusmod tempor inccided ut labore et dolore magna aliqua.如果是最小的鹿肉,那么诺斯特鲁德的实验室就不需要支付任何费用。在巴黎的富家大教堂里,有一只可爱的海豚。除了西方国家以外,丘比特人没有胆怯,他们在工作中表现得很好。
预期结果:
比赛1
洛雷姆·伊普桑·多洛·西特·阿美,
圣餐仪式
比赛2
爱的精英,塞德·多·埃乌斯莫德
节奏刺激
比赛3
拉伯和多洛尔·马格纳·阿利卡。在一个普通的地方
结果
比赛4
. 在巴黎的富家大教堂里,有一只可爱的海豚。例外情况
箴言
这是我的劳动。
以下是我迄今为止所掌握的支持信息:
上述问题截图
链接到所有字段都已填充的regex测试仪
感谢您的帮助!
您可以使用
1 | (.*?)(consectetur|tempor incididunt|proident|consequat|\Z) |
因此,模式现在匹配:
(.*?) —第1组:在第一次出现之前,尽可能少的任何0+字符(consectetur|tempor incididunt|proident|consequat|\Z) —任何备选方案:consectetur 、tempor 、incididunt 、proident 、consequat 或串尾。
如果字符串可以换行,则在编译regex时使用
1 | rx = re.compile(r'(.*?)(consectetur|tempor incididunt|proident|consequat|\Z)', re.DOTALL) |