正则表达式从文本文件中提取文本块?

2024-04-16

我需要使用正则表达式从 Python 文本文件中提取标题及其下方的文本块,但我发现这很困难。

我转换了这个PDF https://www.docdroid.net/rduS8oC/pdfsam-doc.pdf文本,现在看起来像这样:

到目前为止,我已经能够使用以下正则表达式获取所有数字标头(12.4.5.4、12.4.5.6、13、13.1、13.1.1、13.1.12):

import re

with open('data/single.txt', encoding='UTF-8') as file:

    for line in file:
        headings = re.findall(r'^\d+(?:\.\d+)*\.?', line)
        print(headings)`

我只是不知道如何获取这些标题的措辞部分或它们下面的文本段落。

EDIT- 正文如下:

是。 EN 60601-1:2006&A1:2013&AC:2014&A12:2014

60601-1 © IEC:2005 60601-1 © IEC:2005

– 337 – – 169 –

12.4.5.4 其他产生诊断或治疗辐射的 ME 设备 适用时,制造商应在风险管理过程中解决 与 ME 设备产生诊断或治疗辐射(除 用于诊断 X 射线和放射治疗(见 12.4.5.2 和 12.4.5.3)。

通过检查风险管理文件来检查是否符合要求。

12.4.6 诊断或治疗声压 适用时,制造商应在风险管理过程中解决 与诊断或治疗声压相关的风险。

通过检查风险管理文件来检查是否符合要求。

13 * 危险情况和故障情况

13.1 特定危险情况

  • General

13.1.1 当应用 4.7 中描述和 13.2 中列出的单一故障条件时,一次发生一个 时间内,不应出现 13.1.2 至 13.1.4(含)中的危险情况。 我的设备。

任何一个组件同时发生故障都可能导致危险情况 4.7 中描述。

  • 排放、外壳变形或超过最高温度

13.1.2 不得发生以下危险情况: – 危险气体中火焰、熔融金属、有毒或可燃物质的排放

数量;

——外壳的变形程度损害了 15.3.1 的规定; –

当应用部件的温度超过表 24 中规定的允许值时 按11.1.3所述进行测量; ME 设备部件的温度,这些部件不是应用部件,但可能是 经测量和调整后,超出表23允许值 11.1.3 中描述;

– 超出表 22 中确定的“其他部件和材料”的允许值 乘以 1.5 减去 12.5 °C。绕组的限值见表 26、表 27 和表 31。 在所有其他情况下,表 22 的允许值适用。

应使用 11.1.3 中描述的方法测量温度。

4.7、8.1 b)、8.7.2 和 13.2.2 中关于排放的单一故障条件 火焰、熔融金属或可燃物质不得应用于零部件 在哪里: – 结构或供电电路限制了单故障时的功耗

条件小于 15 W 或能量耗散小于 900 J。


您可以使用您的模式并在其后匹配一个空格,然后再匹配该行的其余部分。

然后重复匹配所有不以标题开头的以下行。

^\d+(?:\.\d+)* .*(?:\r?\n(?!\d+(?:\.\d+)* ).*)*
  • ^\d+(?:.\d+)* 匹配标题后跟空格的模式
  • .*匹配除换行符之外的任何字符 0 次以上
  • (?: Non capturing group
    • \r?\n匹配换行符
    • (?! Negative lookahead, assert what is directly to the right is not
      • \d+(?:.\d+)* 标题模式
    • )关闭前瞻
    • .*匹配除换行符之外的任何字符 0 次以上
  • )*关闭非捕获组并重复 0+ 次以匹配所有行

正则表达式演示 https://regex101.com/r/GlhnaT/1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式从文本文件中提取文本块? 的相关文章

随机推荐

  • Direct2D 位图画笔拉长

    我必须在屏幕外位图上绘制形状 但是当我尝试渲染位图时遇到一个奇怪的问题 这就是图像的显示方式 这就是我查看位图的方式 以下是我用来创建位图画笔的代码 const auto size renderTarget gt GetSize const
  • 内容更改时停止文本小部件滚动

    我有一个带有滚动条的文本小部件 看起来像这样 self myWidget Text root self myWidget configure state DISABLED self myWidget pack self myWidgetSc
  • 在线性回归中使用数据框的列名称作为预测变量

    我正在尝试遍历 data frame 的所有列名称并使用它们 作为线性回归中的预测变量 我目前拥有的是 for i in 1 11 for j in 1 11 if i j var1 names newData i var2 names n
  • 奇怪的错误 TypeError:无法在 onSuccessMapUnitFields 处读取 null 的属性“setValue”[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 这段代码运行得很好 直到我决定再添加 4 行代码 所以我删除了它们 但我收到了这个错误 有趣的是我在Form onloa
  • 防止在弹出窗口外部单击时关闭 SweetAlert

    我在用甜蜜警报电子商务应用程序中我的产品视图上的弹出窗口有两个按钮 一个用于进入购物车视图 另一个用于重新加载视图 但是 当用户在弹出窗口外部单击时 弹出窗口会自动关闭 我已尝试以下属性来阻止其关闭 但没有任何作用 hideOnOverla
  • 将多个模型和自定义字段添加到 Django Rest Framework 中的 json 响应

    我是 Python Django 编程新手 在我正在做的个人项目中遇到了一些问题 我的问题是 我想根据应用程序的不同模型返回自定义响应 一些值将来自自定义查询 其他值是模型本身的一部分 因此 我的应用程序中有以下模型 删除了一些字段以免帖子
  • CodeIgniter 中的超级对象是什么?

    我在 超级对象 中看到了 超级对象 这个词代码点火器手册 http codeigniter com user guide general creating libraries html 但该术语没有详细解释 那么 CodeIgniter 中
  • 在c中动态增加数组(int *)的大小

    我想动态地将数字添加到c中的数组中 我的想法是分配一个大小 1 的新数组 添加数字 释放根数组并将指针从 temp 更改为根数组 像这样 void addNumber int a int size int number size size
  • Django 根据日期时间按日期进行分组计数

    我正在尝试计算用户从日期时间字段注册的日期 在数据库中 它存储为 2016 10 31 20 49 38 但我只对日期 2016 10 31 感兴趣 原始 SQL 查询是 select DATE registered at register
  • Javascript Gallery 自动使用页面上的所有大图像

    我有一个网站 一个大页面上有很多图像 最简单的是我可以包含一个脚本 它自动搜索同一页面并使用所有大于 100 像素的图像来创建幻灯片库 有人知道这样一个简单的脚本 不需要任何编程技能吗 我发现这是一个开始 jQuery 获取大于特定尺寸的元
  • 创建以字母数字开头的 Oracle 序列

    我想创建以字符开头的序列inv并增加 1 的价值观 INV01 INV02 INV03 etc CREATE SEQUENCE invoice nun START WITH INV INCREMENT BY 1 只能创建整数值序列 所以声明
  • JSF @ViewScoped Bean 状态丢失

    我正在将 ViewScoped Bean 用于小型 CRUD 应用程序 我有一个编辑和查看页面 但是当我单击按钮 编辑 时 它将呈现编辑表单 编辑表单出现后 保存按钮或取消按钮不会调用该函数 而是呈现整个页面 actionListener
  • Extjs组合框:隐藏下拉列表中的选定值

    我正在使用 ExtJS 4 并寻找一种可以从组合的下拉列表中隐藏当前选定值的方法 因此 代替这个 当前在组合框中选择 阿拉斯加 我希望值列表如下所示 就我而言 组合框是不可编辑 即您不能输入任意值 我认为两次显示所选值没有多大意义 一次在输
  • 使用 Laravel 5 (Lumen) 中的基本路径

    我在一个项目中使用 laravel 在我的本地计算机上 我必须访问的服务器只是 laraveltest dev 当我打开这个 URL 时 项目运行正常 没有任何问题 但是 当我将其上传到测试服务器上时 这些内容位于子文件夹中 如下所示 la
  • xdebug.so:未定义的符号:zend_ce_error

    我需要调试旧的 php 版本 PHP 5 6 22 cli built Jun 29 2016 14 26 09 Copyright c 1997 2016 The PHP Group Zend Engine v2 6 0 Copyrigh
  • 如何加载之前存储的svm分类器?

    我正在 Visual Studio 中使用 openCV SVM OpenCV 2 4 4 0 我训练它 mySVM train trainingDataMat labelsMat Mat Mat params 已保存 mySVM save
  • 用通用函数替换普通函数

    我想将 elt nth 和 mapcar 等名称与我正在原型设计的新数据结构一起使用 但这些名称指定普通函数 因此我认为需要将其重新定义为通用函数 重新定义这些名称可能是一种不好的形式 有没有办法告诉 defgeneric 不要生成程序错误
  • 如何在范围末尾自动调用 Pop-Location

    假设我有一个简单的范围 以 Push Location 和 Pop Location 结尾 Function MyFunction Location Push Location Location do other stuff here Po
  • 如何从JTable中获取图标

    我已经更改了单元格渲染JTable使用以下代码显示图像而不是文本 base table getColumnModel getColumn 3 setCellRenderer new TableCellRenderer Override pu
  • 正则表达式从文本文件中提取文本块?

    我需要使用正则表达式从 Python 文本文件中提取标题及其下方的文本块 但我发现这很困难 我转换了这个PDF https www docdroid net rduS8oC pdfsam doc pdf文本 现在看起来像这样 到目前为止 我