我试图解析以下格式的半结构化文本:
text = "A. xxxxxxx\n\nxxx\n\nxxx\n\n\nB. xxxxxx\n\nxxx\n\nxxx\n\n\nC. xxxxxx\n\nxxx\n\nxxx\n\n\nD. xxxxxx\n\nxxx\n\nxxx"
我想把这些部分分成不同的组。我正在尝试使用一个正则表达式进行分析,该表达式查找大写字母和句点之间的文本:
^{pr2}$但是,这只分析A和C部分:
['A. xxxxxxx\n\nxxx\n\nxxx\n\n', 'C. xxxxxx\n\nxxx\n\nxxx\n\n']
如何修改正则表达式,使匹配的最后一部分不从将来的匹配中排除?在
我不能用新行拆分,因为小节之间的新行数可能会有所不同。在
使用“前瞻”和(可选)摆脱捕获组:
注意,
(?=\n[A-Z]\.|$)
(零宽度前瞻断言)的用法,它只声明给定文本的存在,而不实际匹配它。在试试这个
[A-Z]\.[^.]*(?<![A-Z])
尽管这个
(?m)^[A-Z]\.(?:(?!^[A-Z]\.)[\S\s])*
https://regex101.com/r/t1R28Q/1
永远不会失败。在
相关问题 更多 >
编程相关推荐