正则表达式模糊匹配

2024-09-25 04:19:06 发布

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

这是我目前的代码:

for element in address1:
    z = re.match("^\d+$", element)

    if z:
        get_best_fuzzy("1 DEEPALI", address1)

在上面的代码中,我试图在文本文件中获得匹配的地址。我想得到准确匹配的房子号码与近似匹配与剩余说80%。但是,上面的代码没有给我任何输出,也没有任何错误。你知道吗

以下是我的地址示例:

002 TOWER NO. 7 UNIWORLD GARDEN SEC. 47 SOWA ROAD GURGAON Haryana 122001 India
002 TOWER NO. 7 UNIWORLD GARDEN SECTOR-47 SONA ROAD GURGAON Haryana 122001 India
09;SHIVALIK BUNGLAOW; ANANDNAGAR CROSS ROAD; NEAR MADHUR HALL;SATELLITE; 
AHMEDABAD Gujarat 380015 India
1 DEEPALI; PITAMPURA DELHI Delhi 110034 India
10; BRIGHTON TOWERS; CROSS ROAD NO.2; LOKHANDWALA COMPLEX; ANDHERI WEST MUMBAI Maharashtra 400053 India
100 Vaishali; Pitampura Delhi Delhi 110034 India
100 Vaishali; Pitampura; DELHI Delhi 110034 India

请解释一下,因为我是新来的。你知道吗


Tags: no代码地址elementtowergardencrossindia
1条回答
网友
1楼 · 发布于 2024-09-25 04:19:06

^:断言行开头的位置

\d:匹配一个数字

+:一到无限次之间的匹配

$:断言行末尾的位置

因此您的正则表达式字符串^\d+$将只匹配1100等,后面没有其他字符。你知道吗

要精确匹配门牌号,请尝试^\d+

>>> import re
>>> element = "1 DEEPALI"
>>> z = re.match('^\d+', element)
>>> z
<_sre.SRE_Match object; span=(0, 1), match='1'>
>>> z.group(0)
'1'
>>> if z:
...     print('A match is found!')
... 
A match is found!

您可以使用这样的在线正则表达式生成器来测试您的正则表达式:https://regex101.com/

我不确定你的函数get_best_fuzzy做什么。错误可能是由此产生的。你知道吗

相关问题 更多 >