想用正则表达式提取市的名称,比如吉林省长春市匹配省和市中间的,结果就是吉林,但是代码匹配出来的结果是None,大神快告诉我为什么~
文本是txt文件,如下格式:
1 浙江省新昌县羽林街道江北路4号
2 扬州市广陵区杭集镇曙光路
3 浙江省临海市花园工业区
4 重庆市渝北区人和星光大道69号
5 广东省珠海市香洲区唐家湾镇金凤路1号
6 浙江省绍兴市柯桥区鉴湖路1809号
7 新乡市华兰大道甲1号
8 深圳市南山区深南大道9988号
9 江苏省无锡市惠山区洛社镇洛藕路288号
10 杭州市萧山经济技术开发区
11 浙江省诸暨市店口工业区
12 浙江省遂昌县凯恩路1008号
# -*- coding:UTF-8 -*- import codecs import re import sys reload(sys) sys.setdefaultencoding('utf8') f=codecs.open(r'C:\Users\ada\Desktop\address.txt','r','utf-8') num=0 while 1: line=f.readline() print(line) city=re.search('省(.*?)市',line,re.S) print(city) if not line: break pass f.close();
python3 还是 2 ?
如果是2,中文字符串前要加前缀 u
在正则表达式前面加了u之后能匹配出来了,但是匹配返回的结果不是我想要的市的名字,而是类似‘<_sre.sre_match object at>’,请问这是什么意思?
@维那厮
这是search方法返回的 匹配对象。
改为findall方法,可以直接得到匹配结果的列表。