适合罗马人的正则表达式,在Python中位于前面和后面

2024-09-29 06:33:16 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我需要做的原始文本检索(存储在名为'table\t'的变量中):

'目录I.简介。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。1二。事实方面。2 A.清洁空气法。3 B.EPA汽油规则。3 1. 基线的建立。3 2. 重新配制的汽油。4 3. 常规汽油(或“反倾销规则”)。4 C.1994年5月的提案。五、主要论点。5A.概述。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5 B.关税及贸易总协定。6 1. 第一条——一般最惠国待遇。6 2. 第三条-国内税收和法规的国民待遇。7 a)条款三:4。. . . . . . . . . . . . . . . . . . . . . . . . . . . 7 b)条款三:1。. . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3. 第二十条一般例外。15 4. 第20(b)条。15 a)“保护人类、动物和植物生命或健康”。15 b)“必要的”。15 5. 第二十(d)条。21 6. 第二十(g)条。22 a)“与保护可耗竭的自然资源有关……”。22 b)“。。。与限制国内生产或消费同时生效“。23 7. 第二十条序言。23 8. 第二十三条-无效和减值。25'

我想匹配一下介绍。。。1' , '二、 事实纵横比…2','三、 主要参数….5'],其形式为'罗马+标题+点+页码'

所以我写下了这样的代码:

romans = ["I.", "II.", "III.", "IV.", "V.", "VI.", "VII.", "VIII.", "IX.", "X."]
for i in range(0,len(romans)):
    try:
        print(i)
        print(re.search(r"((?<={})(.*)(\d))(?!{})".format(romans[i], romans[i+1]),table_t).group())
    except:
        pass

但它的回报是这样的:

<强>0 简介。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。1二。事实方面。2 A.清洁空气法。3 B.EPA的汽油规则。3 1. 基线的建立。3 2. 重新配制的汽油。4 3. 常规汽油(或“反倾销规则”)。4 C.1994年5月的提案。. . . . . . . . . . . . . . . . . . . . . . . 五、主要论点。5A.概述。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5 B.关税及贸易总协定。6 1. 第一条——一般最惠国待遇。6 2. 第三条-国内税收和法规的国民待遇。7 a)条款三:4。. . . . . . . . . . . . . . . . . . . . . . . . . . . 7 b)条款三:1。. . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3. 第二十条一般例外。15 4. 第20(b)条。15 a)“保护人类、动物和植物生命或健康”。15 b)“必要的”。15 5. 第二十(d)条。21 6. 第二十(g)条。22 a)“与保护可耗竭的自然资源有关……”。22 b)“。。。与限制国内生产或消费同时生效“。23 7. 第二十条序言。23 8. 第二十三条-无效和减值。25 1 事实方面。2 A.清洁空气法。3 B.EPA的汽油规则。3 1. 基线的建立。3 2. 重新配制的汽油。4 3. 常规汽油(或“反倾销规则”)。4 C.1994年5月的提案。五、主要论点。5A.概述。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5 B.关税及贸易总协定。6 1. 第一条——一般最惠国待遇。6 2. 第三条-国内税收和法规的国民待遇。7 a)条款三:4。. . . . . . . . . . . . . . . . . . . . . . . . . . . 7 b)条款三:1。. . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3. 第二十条一般例外。15 4. 第20(b)条。15 a)“保护人类、动物和植物生命或健康”。15 b)“必要的”。15 5. 第二十条(d)。. . . . . . . . . . . . . . . . . . . . . . . . 21 6. 第二十(g)条。22 a)“与保护可耗竭的自然资源有关……”。22 b)“。。。与限制国内生产或消费同时生效“。23 7. 第二十条序言。23 8. 第二十三条-无效和减值。25 2 主要论点。5A.概述。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5 B.关税及贸易总协定。6 1. 第一条——一般最惠国待遇。6 2. 第三条-国内税收和法规的国民待遇。7 a)条款三:4。. . . . . . . . . . . . . . . . . . . . . . . . . . . 7 b)条款三:1。. . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3. 第二十条一般例外。15 4. 第20(b)条。15 a)“保护人类、动物和植物生命或健康”。15 b)“必要的”。15 5. 第二十(d)条。21 6. 第二十(g)条。22 a)“与保护可耗竭的自然资源有关……”。22 b)“。。。与限制国内生产或消费同时生效“。23 7. 第二十条序言。23 8. 第二十三条-无效和减值。25 三 4 5 6 7 8 9

在给定的罗马字母对应页码的页码出现后附加了太多的尾部。你知道吗

哪一点出错了?你知道吗


Tags: 规则人类条款税收事实植物动物法规
1条回答
网友
1楼 · 发布于 2024-09-29 06:33:16

匹配标题+点时使用non-greedy正则表达式

import re

table_t = """' Table of Contents I. INTRODUCTION .................................... 1 II. FACTUAL ASPECTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 A. The Clean Air Act . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 B. EPA\'s Gasoline Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Establishment of Baselines . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Reformulated Gasoline . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Conventional Gasoline (or "Anti-Dumping Rules") . . . . . . . . 4 C. The May 1994 Proposal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 III. MAIN ARGUMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 A. General .................................... 5 B. The General Agreement on Tariffs and Trade . . . . . . . . . . . . . . . . 6 1. Article I - General Most-Favoured-Nation Treatment . . . . . . . 6 2. Article III - National Treatment on Internal Taxation and Regulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 a) Article III:4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 b) Article III:1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3. Article XX - General Exceptions . . . . . . . . . . . . . . . . . . . . 15 4. Article XX(b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 a) "Protection of Human, Animal and Plant Life or Health" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 b) "Necessary" . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5. Article XX(d) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6. Article XX(g) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 a) "Related to the conservation of exhaustible natural resources..." . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 b) "... made effective in conjunction with restrictions on domestic production or consumption" . . . . . . . . . . 23 7. Preamble to Article XX . . . . . . . . . . . . . . . . . . . . . . . . . . 23 8. Article XXIII - Nullification and Impairment . . . . . . . . . . . . 25 '"""
for i in range(0, len(romans)):
    try: #\s+ : one or more white spaces(re.s) 
         #[] bracket denotes character group 
         #* preceding one could be matched multiple times 
         #\. means real dot(literally dot!)
        print("{}th trial - for roman {}".format(i,romans[i]))  
        print(re.search(r"((?<={})\s+(?P<name>[A-Z \.]*?)(\d))".format(romans[i]), toc).group())
    except:
        pass

输出:

0th trial - for roman I.
   INTRODUCTION          ....................................                                  1
1th trial - for roman II.
  FACTUAL ASPECTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     2
2th trial - for roman III.
 MAIN ARGUMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      5
3th trial - for roman IV.
4th trial - for roman V.
5th trial - for roman VI.
6th trial - for roman VII.
7th trial - for roman VIII.
8th trial - for roman IX.
9th trial - for roman X.
 . . . . . . . . . . . . . . . . . . . . . . . . . .     2

这是输出

相关问题 更多 >