免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: welf
打印 上一主题 下一主题

求助.去掉文本中无用的符号,怎样做比较快. [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-12-27 18:04 |只看该作者
500MB是夸张了,但我想一个完美的方案应该尽量不占用额外的内存,
我对sed不了解,但我感觉可以做的不错,只是不知道如何处理内存中的数据.

论坛徽章:
0
12 [报告]
发表于 2007-12-27 18:06 |只看该作者
原帖由 welf 于 2007-12-27 18:04 发表
500MB是夸张了,但我想一个完美的方案应该尽量不占用额外的内存,
我对sed不了解,但我感觉可以做的不错,只是不知道如何处理内存中的数据.

flw的意思是叫你按行处理

论坛徽章:
0
13 [报告]
发表于 2007-12-27 18:08 |只看该作者
原帖由 cjaizss 于 2007-12-27 17:59 发表

我写的这个函数的参数,也可以支持s1==d2的情况

刚看到,上一回帖做废.
我现在就试一试,看看是否可行.

论坛徽章:
0
14 [报告]
发表于 2007-12-27 18:12 |只看该作者
原帖由 -耗子- 于 2007-12-27 18:06 发表

flw的意思是叫你按行处理

不明白,buff里可能一个'\n'都没有, 他的意思是一个buff sed一次?
可我的问题是不知道如何sed 内存中的某个buff.

论坛徽章:
0
15 [报告]
发表于 2007-12-27 18:14 |只看该作者
原帖由 welf 于 2007-12-27 18:12 发表

不明白,buff里可能一个'\n'都没有, 他的意思是一个buff sed一次?
可我的问题是不知道如何sed 内存中的某个buff.

没有'\n'也可以以固定长度(如4096byte)为一单位做过滤嘛

论坛徽章:
0
16 [报告]
发表于 2007-12-27 19:40 |只看该作者
压缩后的放在原来BUF的前面

原帖由 welf 于 2007-12-27 16:35 发表
谢谢,还有个问题,假如同时要处理500MB的文本,这样一来岂不是增加一倍的空间?

论坛徽章:
0
17 [报告]
发表于 2007-12-27 20:22 |只看该作者
灌个水,用perl的话    $str =~s /([^a-zA-Z]+)//g;     
str是结果

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
18 [报告]
发表于 2007-12-27 20:28 |只看该作者
原帖由 -耗子- 于 2007-12-27 18:02 发表

可能会死循环

只要源是一个字符串,则不会,很好证明其结果的正确性
因为如果一开始s1==s2
则任何时候s1<=s2
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP