我正在尝试使用正则表达式从具有编号标题的文档部分之间获取文本。该文档有目录和章节标题,章节编号中带有句点。例如:1. 简介,1.1 某事,1.1.1 其他 我能够很好地解析 TOC,只得到节号(1.1、1.1.1 等),但未能尝试解析这两个数字之间的文档文本。
考虑以下内容(假设文档文本只是一个大字符串):
1.1 Introduction
There are some sentences in here that I want and I want to do other things with them. There could be hundreds of sentences, who cares.
1.1.1 Something Else
This is where we talk about something else in life.
...
5.1.1 Conclusion
例如,我尝试了以下方法来获取 1.1 和 1.1.1 之间的文本以及此类的一些变体,但似乎卡住了。
(?s)1\.0(.*)1\.1
如果文档中只有第 1.0 和 1.1 节,则此方法有效,但由于我没有那么奢侈....非常感谢任何帮助。
最佳答案
使用 re.split
使用正则表达式拆分数字,如下所示。
^\d+(?:\.\d+)*
这匹配一位或多位数字 \d+
后跟零次或多次出现的子模式,句点后跟一位或多位数字 (?:\.\d+)*
.
结果列表的项目是数字之间的文本,包括标题行本身的文本。
如果您也需要节号,请在正则表达式中使用捕获模式(在上面添加括号)。然后列表将包含节号和它们之间的文本。偶数项是中间的文本,奇数项是节号。
关于python - 正则表达式 - 抓取带有句点 1.1、1.1.1 等的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73709821/