我正在尝试规范化非结构化文本文件。我似乎无法找出匹配特定开始和结束边界的表达式,并取得任何成功。
示例文本:
"Section 13 - Governmental Oversight and Operational Accountability."
"Section 13 : Governmental Over-sight and Accountability."
"Section 13. Governmental Oversights, Controls and Operational Accountability."
"Section 13.\nGovernmental Oversight\nand Operational Accountability."
鉴于上面的示例,我总是希望在开头找到“Section 13([ \.:-{0,2}])(space|newline)Governmental"
”,最后找到“问责制”,但两者之间存在很大的差异。我必须重复这个过程。 30节。我通过逐行迭代文件并将5行字符串连接发送到模式匹配器来解析这些文档。
我的第一次尝试是尝试考虑每个部分单词的每个排列,但这证明了它们非常无效。
我的最新尝试根本不起作用:
s13 = lambda t : re.match(r'^(Section(\s{0,})(\n{0,})(\s{0,})13(\.|:?)(\s{0,})(Governmental(\s{0,}.*Accountability)', t, re.I|re.S)
非常感谢任何建议。
答案 0 :(得分:1)
也许使用+
运算符作为范围。这似乎与您的示例文本有关。
Section[\s\\n]+13[ -:\\n]+(Governmental.*?Accountability\.)
尝试使用以下网站测试正则表达式http://re-try.appspot.com/