[在Python中使用正则表达式检查章节编号?

问题描述 投票:0回答:1

如何使用正则表达式正确检查章节编号?输入文档可以是通常格式化的论文或一本书。我想用下面的示例输入分隔每个章节/部分编号及其名称/标题,以避免假输入。问题可能是正则表达式上的“点”字符。它可能是特殊字符。有任何建议可以解决此问题吗?

import re

testContent = ["1. Name Chapter Name", "1.1. Section name abcdefg", 
               "1.1.1. Subsection tests", "1.2. aaaaaaaaaa", "2. Chapter 2", 
               "12 ml fake input", "section 3.3 fake input"]

seperated = {}
for line in testContent:
    match = re.search(r'^[1-9.]+', line)
    if match:
        rest  = re.sub(match.group(), '', line)
        seperated.update({match.group() : rest})
print(seperated)

结果是:

{'1.': ' Name Chapter Name', '1.1.': ' Section name abcdefg', '1.1.1.': ' Subsection tests', '1.2.': ' aaaaaaaaaa', '2.': ' Chapter 2', '12': ' ml fake input'}
python regex text nlp nsregularexpression
1个回答
0
投票

尝试此正则表达式:

for test in testContent:
  match = re.search(r'^([1-9]\.)+',test)
  print(match)

输出:

<_sre.SRE_Match object; span=(0, 2), match='1.'>
<_sre.SRE_Match object; span=(0, 4), match='1.1.'>
<_sre.SRE_Match object; span=(0, 6), match='1.1.1.'>
<_sre.SRE_Match object; span=(0, 4), match='1.2.'>
<_sre.SRE_Match object; span=(0, 2), match='2.'>
None
None

假冒输入排除...

© www.soinside.com 2019 - 2024. All rights reserved.