python正则匹配地址(正则匹配地名)

匹配地名:
不多说,上代码


def Match_Address(data):
    import re
    PATTERN1 = r'([\u4e00-\u9fa5]{2,5}?(?:省|自治区|市)){0,1}([\u4e00-\u9fa5]{2,7}?(?:区|县|州)){0,1}([\u4e00-\u9fa5]{2,7}?(?:镇)){0,1}([\u4e00-\u9fa5]{2,7}?(?:村|街|街道)){0,1}([\d]{1,3}?(号)){0,1}'
    # \u4e00-\u9fa5 匹配任何中文
    # {2,5} 匹配2到5次
    # ? 前面可不匹配
    # (?:pattern) 如industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。意思就是说括号里面的内容是一个整体是以y或者ies结尾的单词
    pattern = re.compile(PATTERN1)
    p1 = ''
    p2 = ''
    p3 = ''
    p4 = ''
    p5 = ''
    p6 = ''
    m = pattern.search(data)
    if not m:
        print('None')
    if m.lastindex >= 1:
        p1 = m.group(1)
    if m.lastindex >= 2:
        p2 = m.group(2)
    if m.lastindex >= 3:
        p3 = m.group(3)
    if m.lastindex >= 4:
        p4 = m.group(4)
    if m.lastindex >= 5:
        p5 = m.group(5)
    if m.lastindex >= 6:
        p6 = m.group(6)
    out = '%s|%s|%s|%s|%s|%s' % (p1, p2, p3, p4, p5, p6)
    return out
if __name__ =='__main__':
    data=str(input("请输入文本:"))
    out=Match_Address(data)
    print(out)

结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
讲解

\u4e00-\u9fa5 匹配任何中文 :[\u4e00-\u9fa5]{2,5} 匹配任意2到5个中文
{2,5} 匹配2到5次
? 表示前面可不匹配
(?:pattern) 如industr(?:y|ies) 就是一个比 ‘industry|industries’ 更简略的表达式。意思就是说括号里面的内容是一个整体是以y或者ies结尾的单词。
?:省|自治区|市 :表示可以匹配省,也可以匹配自治区,也可以匹配市
元字符( “( )” ),用来表示一个group的开始和结束。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

总裁余(余登武)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值