找回密码
 加入
搜索
楼主: netbean

[效率算法] 文本减肥:正则[已解决]

 火.. [复制链接]
 楼主| 发表于 2011-5-2 15:02:05 | 显示全部楼层
20984/21187/21036ms-原始文本,by easefull
记事本另存文本,不能转换。
特别的是,减肥比其他转换后的小2KB
发表于 2011-5-2 15:05:51 | 显示全部楼层
回复 46# netbean

20984/21187/21036ms-原始文本,by easefull
记事本另存文本,不能转换。
特别的是,减肥比其他转换后的小 ...
netbean 发表于 2011-5-2 15:02


这几个数字是啥意思?
你用的哪个文件测试得21036ms的?没那么夸张吧.试一下45楼的时间看看.
 楼主| 发表于 2011-5-2 15:27:18 | 显示全部楼层
是合并后的文件,1143KB,12楼;
45楼的实验:2117/1990/1749/1813ms
另存文件后,有:
000008        综合指数
000009        0xC9CFD6A433383
000010        0xC9CFD6A431383
000011        基金指数
发表于 2011-5-2 15:51:53 | 显示全部楼层
回复 48# netbean

45楼的乱码bug已经修改过来了.
另外,似乎没有1813ms那么夸张吧.你是怎么测的?

我的shex.tnf文件大小659,300字节.
现在45楼的代码并不保存减肥文件.而是直接给出搜索的结果.我测试的几个都是200ms以内的.
你再把代码复制一次,不修改,直接放到shex.tnf的目录下面运行看看显示的是多少时间?
 楼主| 发表于 2011-5-2 16:42:23 | 显示全部楼层
本帖最后由 netbean 于 2011-5-2 16:57 编辑

好,实验数据和硬件相关,只是相对照。
561/395/372/386ms合并后记事本另存文本搜索(原始文本时间和下面接近,硬件为上网本)
1672/1725/1638ms-原始文本减肥,时间最短,文件最小
不知道减肥后文件,以名称查代码,还有更快方法吗?谢谢!
发表于 2011-5-2 16:48:57 | 显示全部楼层
好,实验数据和硬件相关,只是相对照。
561/395/372/386ms合并文件搜索
netbean 发表于 2011-5-2 16:42


这个是45楼代码4次测试的时间?
 楼主| 发表于 2011-5-3 01:18:03 | 显示全部楼层
本帖最后由 netbean 于 2011-5-3 09:06 编辑

45楼实验
1139/1388/1142/1403ms减肥前文件
21/20/22/20ms减肥后文件

两种方式查询8支股票代码,速度接近:
6061/6220/5411/4758ms-StringInStr搜索
5497/5353/5244/5385ms-StringRegExp搜索

非常感谢大家!
发表于 2011-5-3 09:47:50 | 显示全部楼层
回复 52# netbean
45楼的代码想法很好,但是有一个问题.
查询下面的数据是否失败呢?SNT.TXT文件内容中的股票有多少支呢?是4690支呢还是4624支呢?
888880-新标准券
887001-银行类
887002-钢铁行业
887003-家具行业
887004-石油行业
887005-公路桥梁
887006-汽车类
887007-交通运输
887008-医疗器械
887009-酒店旅游
887010-房地产
887011-商业百货
887012-物资外贸
887013-食品行业
887014-纺织行业
887015-电力行业
887016-农林牧渔
887017-传媒娱乐
887018-化工行业
887019-煤炭行业
887020-建筑建材
887021-水泥行业
887022-家电行业
887023-电子信息
887024-综合行业
887025-机械行业
887026-化纤行业
887027-农药化肥
887028-电器行业
887030-开发区
887032-船舶制造
887033-生物制药
887034-电子器件
887035-有色金属
887036-酿酒行业
887037-造纸行业
887038-环保行业
887039-陶瓷行业
887040-服装鞋类
887041-供水供气
887042-发电设备
887043-纺织机械
887044-印刷包装
887045-塑料制品
887046-玻璃行业
887048-仪器仪表
887049-券商类
887050-保险类
887500-长三角
887501-珠三角
887502-环渤海
887503-海峡西岸
887505-含B股
887506-含H股
887507-世博概念
887508-3G概念
887509-新能源
887510-军工航天
887511-权证类
887512-ST股
887513-物联网
887514-智能电网
887515-黄金概念
887516-低碳经济
887517-ETF基金
887788-通达信88
 楼主| 发表于 2011-5-3 10:16:02 | 显示全部楼层
是的,重新检查后得到全部股票数:4690支
76KB的文件少了“88”部分
发表于 2011-5-3 11:31:12 | 显示全部楼层
回复 54# 3mile

代码已经改过来了.

用winHex再看了一次,发现
8字头的是  0{6}.{2}0{6}.{6}0{16}
而其它的是 0{6}.{2}0{8}.{4}0{16}
文件格式吃不透的结果,郁闷啊.

不知道您是怎么发现这问题的?怎么那么快就能找出我漏查的那些信息?
发表于 2011-5-3 12:22:22 | 显示全部楼层
回复 55# easefull
$sRegExp  ='3\d3\d3\d3\d3\d3\d0{6}..(?(?=0{8})0{8}.{4}0{16}.*?(?:00)|0{6}.{6}0{16}.*?(?:00))
 楼主| 发表于 2011-5-3 12:59:36 | 显示全部楼层
重新实验45楼新代码,
3461/2900/2663/2660ms-原始文本
减肥后文件大小一样,股票数一样
发表于 2011-5-3 13:41:35 | 显示全部楼层
回复 57# netbean

之前的脚本匹配SNT.txt文件只能查到4623支股票,现在(v0.3.0 Beta)已经可以找到4690支.

另外,提醒一下
昨天从 v0.1.2 开始的脚本就已经不再生成、保存文件了.
既使在 v0.1.1 也只是为了测试从减肥后的文件查询需要的时间才做的文件保存.

评分

参与人数 1金钱 +30 收起 理由
3mile + 30 效率很好

查看全部评分

发表于 2011-5-3 13:44:09 | 显示全部楼层
回复 56# 3mile

感谢提醒 (?=exp)exp
膜拜 exp(?exp1|exp2)、exp(?:exp1|exp2)

谢谢赐教
发表于 2011-5-3 13:44:53 | 显示全部楼层
回复 59# easefull
客气了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-13 02:10 , Processed in 0.076253 second(s), 18 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表