【问题标题】:Regex: Recognizing and removing lists and menus正则表达式:识别和删除列表和菜单
【发布时间】:2017-07-13 16:59:32
【问题描述】:

在我编写自己的方法之前,我很好奇是否有一个正则表达式可以帮助我。

背景

在对术语进行统计分析之前,我正在清理原始文本。文本来自网站,因此包括菜单(来自许多网站的许多菜单)。

典型的列表/菜单如下所示(项目之间有一个换行符除外):

学生服务

指导与支持

核心服务

录取和记录

经济援助

咨询

评估测试

Kickstart 方向

辅导

职业与转学中心

学生欢迎中心

手头的任务 我想删除所有列表

我需要删除每隔第一个、第三个或第四个单词后有换行符的文本块,但前提是这种模式连续重复 3 次或更多次(我不想删除单个短句,例如“学生总是成功的。”)

正则表达式可以识别这种模式吗?

注意:我正在使用 java。

更新示例文本

[[[我想删除此列表]]] 办公室和服务

学生服务

活动与田径

记录和注册

成本和经济援助

合规与多元化

校友

教职员工资源

BMCC 基金会

人力资源

BMCC 主页>学术>健康教育>课程列表

[[[我想删除此列表]]] 健康教育之家

课程列表

教师

[[[我想删除此列表]]] 社区健康教育

老年学

学校健康教育

公共卫生

参观招生

课程列表

[[[我想在下面保留文字]]] 以下课程由健康教育部提供。

2CRS., 2HRS, 0 LAB HRS。 海德 100 健康教育

这是一门健康教育的介绍性调查课程。该课程为学生提供知识、技能和行为模式,以增强他们的身体、情感、社交、智力和精神健康,并促进他们的健康决策能力。主要教学领域包括:健康和保健;压力;人类的性行为;酒精、烟草和药物滥用;营养和体重管理;和身体素质。完成 HED 110 - 综合健康教育的学生将不会获得本课程的学分。

3CRS.、3HRS、0 LAB HRS。 110 年 综合健康教育

这门健康教育课程提供了一种综合方法,为学生提供知识、技能和行为模式,以增强他们的身体、情感、社交、智力和精神健康,并促进他们的健康决策能力。专业领域包括:酒精、烟草和滥用物质、心理和情绪健康、人类性行为和家庭生活、营养、身体健康、心血管健康、环境健康和医疗保健服务。 HED 110 满足 HE 100 的所有学位要求。完成 HED 100 - 健康教育的学生将不会获得本课程的学分。

【问题讨论】:

  • 您好,您可以添加一个示例吗?我的意思是,输入和期望的输出是什么?
  • "...每隔一个第二个、第三个或第四个单词后换行..." 单词数重要吗?
  • 输入将是来自网页的纯文本(不是 html)。 ... 有点长在这里展示。问题中显示的列表是需要从文本中删除的典型内容。输出将是相同的纯文本,但删除了所有列表。
  • 字数重要吗?启发式是菜单和列表中的条目是四个或更少的单词。由于我正在处理大数据,删除 90% 的列表就足够了,“4 个字或更少”的规则应该可以达到这个目的
  • 哦,我明白了!这就是为什么“新行”/“新行”格式很重要的原因!感谢您的澄清,@kirkpatt 帖子和很棒的答案!

标签: regex nlp


【解决方案1】:

假设关于字数的部分不重要,试试(([A-Za-z& ])*(\n|\r|\r\n)){5,}的正则表达式模式,例如here

根据需要更改这五个量词,这只是一个示例。 5 不会匹配带有额外换行符的两行或没有结尾换行符的三行列表。

【讨论】:

  • 另外请注意,我假设您拥有的唯一特殊字符是空格和 & 符号。如果需要,添加那里。
  • 需要一两次调整,但这完全是魔法。哇!太感谢了。如果我被允许,我会支持你两次
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-27
  • 2010-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多