如何检测编号标题中的编号(长度)?

Posted

技术标签:

【中文标题】如何检测编号标题中的编号(长度)?【英文标题】:How to detect (length of) numbering in a numbered title? 【发布时间】:2018-12-27 18:54:45 【问题描述】:

python3 中是否有一种方法(经过训练的模型或确定性函数)可以返回标题中编号的长度。 例如,

"I. This is a big title" ---> length=len("I.")=2
"1.10 This a small title" ---> length=len("1.10")=4
"A)b) This is another title" ---> length=len("A)b)")=4
"C.2 This is a regular title" ---> length=len("C.2")=3
"This is not a title" ---> length=0
etc....

?

我写了一个小函数,它使用正则表达式来检测字符串是否以编号开头:

pattern = r'(^IX|IV|VI0,3|I1,3)(\s|-|\s-|\)|\s\)|\.|\s\.|/|\s/|–|\s–)'
m_romans = re.search(pattern, text)
m_letters = re.search(r'^([a-zA-Z])(\s|-|\s-|\)|\s\)|\.|\s\.|/|\s/|–|\s–)', text)
m_digits = re.search(r'^(\d)(\s|-|\s-|\)|\s\)|\.|\s\.|/|\s/|–|\s–)', text)

也许正则表达式可以提供帮助?

【问题讨论】:

这归结为编写一个正则表达式,或功能上与正则表达式等效的东西,用于检测“编号模式”。已经有很多正则表达式教程,所以任何额外的帮助只会引导您明确您认为的“编号模式”是什么。 【参考方案1】:

如果编号总是在开头并用空格分隔。

len(title.split()[0])

应该可以。

再想一想,也许您可​​以使用title.split()[0] 并使用您的正则表达式检查该结果。如果满足你对标题的定义,检查长度,否则返回0

【讨论】:

【参考方案2】:

如果您尝试使用类似的方法首先使用正则表达式来检测数字

Return positions of a regex match() in javascript?

【讨论】:

以上是关于如何检测编号标题中的编号(长度)?的主要内容,如果未能解决你的问题,请参考以下文章

在word中的段落编号中如何进行编号搜索

如何验证 vuejs 中的输入类型编号 - 如果输入的编号无效

零填充员工编号。 Talend Job 中的字段 [关闭]

如何使 Access 中的新自动编号跟随上一个自动编号

如何检测 UIScrollView 的下一页编号为'scrollView.pagingEnabled' = YES?在'scrollViewDidEndDragging'?

如何对 Google Docs/Drive 文档中的标题进行编号?