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}'
175答题# \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.arch(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)
结果:
讲解:
listening\u4e00-\u9fa5 匹配任何中⽂ :[\u4e00-\u9fa5]{2,5} 匹配任意2到5个中⽂
{2,5} 匹配2到5次
表⽰前⾯可不匹配
(?:pattern) 如industr(?:y|ies) 就是⼀个⽐ ‘industry|industries’ 更简略的表达式。意思就是说括号⾥⾯的内容是⼀个整体是以y或者ies结尾的单词。
:省|⾃治区|市 :表⽰可以匹配省,也可以匹配⾃治区,也可以匹配市
元字符( “( )” ),⽤来表⽰⼀个group的开始和结束。