匹配相似但不完全相同的字符串

2024-10-02 10:29:53 发布

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

我有两个csv,一个有大量文本,另一个有注解/字符串。我想找到注释在文本中的位置。问题是有些注释有多余的空格/字符,而这些字符不在文本中。我不能从原文中删去空白/字符,因为我需要准确的位置。我开始使用正则表达式,但似乎没有办法搜索部分匹配。你知道吗

示例

text = ' K. Meney & L. Pantelic, Int. J. Sus. Dev. Plann. Vol. 10, No. 4 (2015) 544?561\n? 2015 WIT Press, www.witpress.com\nISSN: 1743-7601 (paper format), ISSN: 1743-761X (online), http://www.witpress.com/journals\nDOI: 10.2495/SDP-V10-N4-544-561\nNOVEL DECISION MODEL FOR DELIVERING SUSTAINABLE \nINFRASTRUCTURE SOLUTIONS ? AN AUSTRALIAN  \nCASE STUDY\nK. MENEY & L. PANTELIC\nSyrinx Environmental PL, Australia.\nABSTRACT\nConventional approaches to water supply and wastewater treatment in regional towns globally are failing \ndue to population growth and resource pressure, combined with prohibitive costs of infrastructure upgrades.  '


seg = 'water  supply and wastewater  ¿treatment'


 m = re.search(seg, text, re.M | re.DOTALL | re.I) 

这个匹配大约15%的分段

m = re.match(r'(water).*(treatment)$', text, re.M) 

这不起作用,我认为这将是可能的匹配上的第一个和最后一个词,并得到他们的立场,但这有许多问题,如多次出现的'水'

with open(file_path) as file, \
            mmap.mmap(file.fileno(), 0, access=mmap.ACCESS_READ) as s:
                if s.find(seg) != -1:
                    print('true')

不知什么原因,我一点运气都没有。
我是不是走上了正确的道路,或者有没有更好的方法?你知道吗

额外示例

来自文本
SIDM?模型应用于一个快速发展的澳大利亚城镇(霍普顿)

来自Seg
SIDM模型应用于快速发展的澳大利亚城镇(Hopetoun)

来自文本
\nSIDM公司?旨在用作设计和评估工具。作为一种设计工具,它i)指导可持续基础设施解决方案的设计,ii)可以用作评估项目完成水平的进度检查,iii)突出现有信息集中的差距,以及iv)基本上提供推进设计过程所需的工作范围。作为一种评估工具,它既可以作为一种快速诊断工具,检查解决方案是否存在重大缺陷或通常可接受,也可以作为一种详细的评估工具,详细比较各种选项以确定首选解决方案。你知道吗

来自Seg
SIDM旨在同时用作设计和评估工具。作为一种设计工具,它i)指导可持续基础设施解决方案的设计,ii)可用作评估项目完成水平的进度检查,iii)突出现有信息集中的差距,以及iv)基本上提供推进设计过程所需的工作范围。作为一种评估工具,它既可以作为一种快速诊断工具,检查解决方案是否存在重大缺陷或是否普遍可接受,也可以作为一种详细的评估工具,其中可以详细比较各种选项,以确定首选解决方案。你知道吗

匹配前要分段的子对象列表:

seg = re.sub(r'\(', r'\\(', seg ) #Need to escape paraenthesis due to regex
seg = re.sub(r'\)', r'\\)', seg )
seg = re.sub(r'\?', r' ', seg )
seg = re.sub(r'[^\x00-\x7F]+',' ', seg)
seg = re.sub(r'\s+', ' ', seg)
seg = re.sub(r'\\r', ' ', seg)

Tags: and工具totext文本re示例解决方案

热门问题