首页 > 解决方案 > 使用正则表达式验证章节标题

问题描述

我有一些标题列表,我需要知道它们是否有效。

我正在尝试这个的一些变化 -^\d{1}\.\d

我的清单是这样的:

有效 - 这需要是一个有效的标题

1.1.1 -  Abreviaturas utilizadas
1.10.6.7 - VII - Situações
1.11.2 - Membros

无效 - 我的正则表达式无法将其设置为有效标题

3.5452/2012
9.8

你认为可以用正则表达式映射这个问题吗?

我的想法是一个正则表达式,它捕获任意数量的数字,后跟一个点,直到找到一个空格和一个破折号(-)。

我的测试:https ://regex101.com/r/bjTptv/3

标签: pythonregex

解决方案


您可以使用

^\d+(?:\.\d+)*[ \t]+-[ \t]+.*

匹配这些行。请参阅正则表达式演示.*如果您只需要检查该行是否匹配,您可以删除。

细节

  • ^- 字符串的开头(如果re.M使用,则为行)
  • \d+- 1+ 位数
  • (?:\.\d+)*- 0+ 序列.和 1+ 数字
  • [ \t]+- 1 个或多个空格或制表符
  • -- 一个连字符
  • [ \t]+- 1 个或多个空格或制表符
  • .*- 尽可能多的除换行符以外的任何 0+ 字符

推荐阅读