跨多线findall

时间:2016-10-20 08:55:16

标签: python regex

尝试使用以下布局解析文档。目的是找到所有“香港案例/判决/ 1946-1972”和“高等法院”。

我尝试的代码如下:

import re 
name = raw_input("Enter file:")
if len(name) < 1: name = "1946-1980,1982.txt"
handle = open(name)

for line in handle: 
    line = line.rstrip()
    if re.findall("\bHong Kong Cases/Judgments/1946-1972.*HIGH COURT\b",line, re.DOTALL):
        print line

根据我的理解,“re.DOTALL”应该允许我搜索多行?但是我最终没有回答。

任何有关为什么不起作用的帮助将非常感谢!如果我没有以通常的格式设置问题,请原谅我,这是我第一次在stackoverflow上提问。再次感谢!

==========================

Hong Kong Cases/Judgments/1946-1972 HKC/ATTORNEY GENERAL v CHAN WAH -
[1946-1972] HKC 684 - 20 April 1971


                                                                     8 pages



           ATTORNEY GENERAL v CHAN WAH - [1946-1972] HKC 684



HIGH COURT

==========================

1 个答案:

答案 0 :(得分:0)

re.findall("\bHong Kong Cases/Judgments/1946-1972.*HIGH COURT\b",line, re.DOTALL)

删除^并添加\b代替获取所有匹配。

参见演示。

https://regex101.com/r/fgOsys/1