捕获组的引用
反向引用
正则表达式的先行断言和后行断言一共有4种形式:
(?=pattern) 零宽正向先行断言(zero-width positive lookahead assertion)
(?!pattern) 零宽负向先行断言(zero-width negative lookahead assertion)
(?<=pattern) 零宽正向后行断言(zero-width positive lookbehind assertion)
(?<!pattern) 零宽负向后行断言(zero-width negative lookbehind assertion)
这里面的pattern是一个正则表达式。
# coding=utf-8
import re
str = '''
600893 航发动力 600516 方大炭素 600048 保利地产601288 农业银行 000402 金融街 601669 中国电建
601111 中国国航 002797 第一创业 600690 青岛海尔
600271 航天信息 002027 分众传媒 000792 盐湖股份
000898 鞍钢股份 603288 海天味业 002146 荣盛发展600585 海螺水泥 601901 方正证券 002493 荣盛石化
600816 安信信托 601155 新城控股 600104 上汽集团000768 中航飞机 600660 福耀玻璃 600703 三安光电600705 中航资本 600383 金地集团 600031 一工
601169 北京银行 000776 广发证券 600061 国投资本
601988 中国银行 002558 巨人网络 600886 国投电力
601328 交通银行 002241 歌尔股份 601225 陕西煤业601997 贵阳银行 000651 格力电器 603858 步长制药600926 杭州银行 600606 绿地控股 600547 山东黄金600919 江苏银行 601333 厂深铁路 002195 二三四五
601009 南京银行 601238 广汽集团 600170 上海建工002142 宁波银行 600332 白云山 601727 上海电气601229 上海银行 002465 海格通信 600196 复星医药
600019 宝钢股份 002736 国信证券 600009 上海机场
601992 金隅集团 601211 国泰君安 600018 上港集团600008 首创股份 000728 国元证券 601607 上海医药
002385 大北农 600837 海通证券 600000 浦发银行002310 东方园林 002415 海康威视 600820 隧道股份
002153 石基信息 002508 老板电器 601699 潞安环能600085 同仁堂 002008 大族激光 002500 山西证券
000725 京东方A 600398 海澜之家 000825 太钢不锈
002594 比亚迪 000895 双汇发展 600809 西汾酒
000783 长江证券 600487 亨通光电 000983 酗煤电
600372 中航电子 000709 河钢股份 600642 申能股份
601998 中信银行 600909 华安证券 000166 申万宏源
601800 中国交建 600027 华电国际 000027 深圳能源601939 建设银行 000063 中兴通讯 000069 华侨城A600115 东方航空 600011 华能国际 002294 信立泰
601818 光大银行 601 688 华泰证券 000060 中金岭南
600977 中国电影 600015 华夏银行 600674 川投能源
600340 华夏幸福 600741 华域汽车 002422 科伦药业
600068 葛洲坝 000627 天茂集团 600109 国金证券600297 广汇汽车 000883 湖北能源 600688 上海石化601118 海南橡胶 600570 恒生电子 601 555 东吴证券
000039 中集集团 601 398 工商银行 600369 西南证券
601888 中国国旅 002230 科大讯飞 601021 春秋航空601628 中国人寿 601166 兴业银行 002024 苏宁易购600036 招商银行 601377 兴业证券 002081 金螳螂
600999 招商证券 600010 包钢股份 600535 天功
001979 招商蛇口 600887 伊利股份 600089 特变电工600016 民生银行 600276 恒瑞医药 000050 深天马A
603993 洛阳钼业 002304 洋河股份 002466 天齐锂业
601117 中国化学 600362 江西铜业 600867 通化东宝
601985 中国核电 002460 赣锋锂业 000630 铜陵有色
600111 北方稀土 601718 际华集团 600438 通威股份601611 中国核建 601958 金钼股份 000938 紫光股份
601601 中国太保 000656 金科股份 600600 青岛啤酒600028 中国石化 600998 九州通 000826 启迪桑德
601186 中国铁建 002450 康得新 000559 万向钱潮
601 390 中国中铁 600518 康美药业 000338 潍柴动力
000999 华润三九 600519 贵州茅台 000581 威孚高科600482 中国动力 600739 辽宁成大 002673 西部证券
600118 中国卫星 601012 隆基股份 002555 三七互娱601668 中国建筑 002475 立讯精密 000858 五粮液600029 南方航空 000568 泸州老窖 000425 徐工机械601098 中南传媒 600808 马钢股份 600153 建发股份000002 万科A 002044 美年健康 600208 新湖中宝
600900 长江电力 601618 中国中冶 002202 金风科技
600373 中文传媒 000333 美的集团 601933 永辉超市
000625 长安汽车 002714 牧原股份 600177 雅戈尔000839 中信国安 601336 新华保险 000538 云南白药600030 中信证券 000876 新希望 600895 张江高科
601866 中远海发 002180 纳思达 600436 片仔癀
601919 中远海控 601018 宁波港 002602 世纪华通
601766 中国中车 002456 欧菲科技 600415 小商品城601006 大秦铁路 600583 海油工程 601877 正泰电器002065 东华软件 600958 东方证券 002236 大华股份000423 东阿阿胶 600637 东方明珠 603799 华友钴业
601198 东兴证券 002624 完美世界 600352 浙江龙盛000413 东旭光电 601857 中国石油 600023 浙能电力
600804 鹏博士 000001 平安银行 600066 宇通客车
601788 光大证券 601318 中国平安 600489 中金黄金000157 中联重科 002963 华东医药 601899 紫金矿业
'''
str = re.sub('(?<=\d)+\s+(?=\d+)', '', str) # 去除数字中间的空白字符
list = re.findall('\d+\s*[^\d\s]+', str)
print(list)
txt = 'Key,Value\n'
for i in list:
k = i.split()
# txt += k[0] + ',' + k[1] + '\n' # 数字000001用Excel打开前面的0会消失
txt += "'" + k[0] + "," + k[1] + "\n" # 拼接字符串将数字000001转为文本'000001
print(txt)
with open('D:/test.csv', 'w')as f:
f.write(txt)