python正则匹配地址(正则匹配地名)
匹配地名:不多说,上代码def Match_Address(data):import rePATTERN1 = r'([\u4e00-\u9fa5]{2,5}?(?:省|自治区|市)){0,1}([\u4e00-\u9fa5]{2,7}?(?:区|县|州)){0,1}([\u4e00-\u9fa5]{2,7}?(?:镇)){0,1}([\u4e00-\u9fa5]{2,7}?(?:村|街|街道))
·
匹配地名:
不多说,上代码
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的开始和结束。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)