处理城市对应的编码, 正则经典实例

# f = open('E:\\城市对应的编号.txt','r+')
# li = f.readlines()
# print(type(li))
# print(li)

ss = '北京:101010100朝阳:101010300顺义:101010400怀柔:101010500通州:101010600昌平:101010700'
import re
l = re.findall(r'\d{9}',ss) #这是处理 数字的
s = re.findall(r'[\u4e00-\u9fa5]+',ss) #这是处理文字的

city_dict = {}

with open('E:\\城市对应的编号.txt','r+',encoding='GBK') as f:
city_no = f.read()
l1 = re.findall(r'[\u4e00-\u9fa5]+:\d{9}',city_no)

#print("li--------------",l1) #['北京:101010100', '朝阳:101010300', '顺义:101010400', '怀柔:101010500',
#print("li_type--------------", type(l1)) #list
for i in l1:
s = i.split(":")
city_dict[s[0]] = s[1]

print(city_dict)
print(city_dict['咸阳'])
print(city_dict.values())
print(type(city_dict))


# print("type city_dict:",type(city_dict))
# print(city_dict)
all = re.findall(r'[\u4e00-\u9fa5]+:\d{9}',ss) #*******************************************************************************
'''
print("all:",all)
'北京:101010100', '朝阳:101010300', '顺义:101010400', '怀柔:101010500', '通州:101010600', '昌平:101010700'

\u4e00-\u9fa5
unicode编码,一种全世界语言都包括的一种编码。(国际化功能中常常用到)
\u4e00-\u9fa5可能是用来判断是不是中文的一个条件。这个没什么介绍就是去找找哪个国家的语言在哪个范围就是了。

+ 可以重复匹配


'''



'''
这个不能有效的解决, 只是输出好看一些

#zip 从参数中的多个迭代器取元素组合成一个新的迭代器
for k,v in zip(s,l):
print(k,':',v)

'''


'''
r 转义
. 匹配除了换行符意外的任何字符
? 前面的字符最多可出现0次或者1次

for i in re.findall(r'.+?:\d{9}',ss):
print(i)


'''



# print("l:",l)
# print("type l:",type(l))
#
# print("s:",s)
# print("type s",type(s))
#
# print("all:",all)
# print("type all:",type(all))
# print('--------------------------------')
# print(all[0])
# print(re.findall(r'\d{9}',all[0]))
# print(type(re.findall(r'\d{9}',all[0])))

原文地址:https://www.cnblogs.com/yuanjia8888/p/9015519.html