免费注册 查看新帖 |

Chinaunix

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

字符串排序 [复制链接]

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
31 [报告]
发表于 2017-06-21 19:30 |只看该作者
回复 29# Windows19
我主要是也想看看
在 Perl 版, 难题面前谁能轻松应对。

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
32 [报告]
发表于 2017-06-21 19:47 |只看该作者
精确匹配字母串

sdfmslfmkwo340ifmks'/.'we.fds'.f'ws.fwf/'\./\sjfhiuesrtewtfrhfkjsyf/'\\/\

精确匹数字符串
/'\;.;''\.\. \/'.\.''\3156855556887945655564\';\.;\'./\



不是模湖匹配

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
33 [报告]
发表于 2017-06-21 20:16 |只看该作者
回复 30# 523066680

执行脚本后,行数少了3分1
估计同时统计字母串,数字串会引起冲突
就写统计字母串排序算了

如果想统计数字串排序,提供一个可以改成数字串排序就行了

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
34 [报告]
发表于 2017-06-21 20:35 |只看该作者
回复 33# Windows19
将你的文件 具有代表性的内容贴出一小部分。
方便进行测试,也方便后面大神解答。

论坛徽章:
12
子鼠
日期:2014-10-11 16:46:482016科比退役纪念章
日期:2018-03-16 10:24:0515-16赛季CBA联赛之山东
日期:2017-11-10 14:32:142016科比退役纪念章
日期:2017-09-02 15:42:4715-16赛季CBA联赛之佛山
日期:2017-08-28 17:11:5515-16赛季CBA联赛之浙江
日期:2017-08-24 16:55:1715-16赛季CBA联赛之青岛
日期:2017-08-17 19:55:2415-16赛季CBA联赛之天津
日期:2017-06-29 10:34:4315-16赛季CBA联赛之四川
日期:2017-05-16 16:38:55黑曼巴
日期:2016-07-19 15:03:112015亚冠之萨济拖拉机
日期:2015-05-22 11:38:5315-16赛季CBA联赛之北京
日期:2019-08-13 17:30:53
35 [报告]
发表于 2017-06-21 20:51 |只看该作者
本帖最后由 523066680 于 2017-06-21 20:57 编辑

对于精确匹配的部分,

这里有多个部分,应该分别统计,还是以最长的一段为代表?
sdfmslfmkwo340ifmks'/.'we.fds'.f'ws.fwf/'\./\sjfhiuesrtewtfrhfkjsyf/'\\/\


-
如果数字串和字母串统计排列后,都存在一个文件中,数字串和字母串
应该按出现的次数统一排列?
abc  (100次 (省略细节
123  (99次
def   (50次
456  (20次

还是分字母串和数字串,分类排列?
abc  (100次
def   (50次
-
123  (99次
456  (20次


-
丢失1/3,是比原来的A.txt 小了一块吗?也许是有很多只有数字的行被排除了。我只考虑了含有字母的行。

评分

参与人数 1信誉积分 +10 收起 理由
Windows19 + 10 赞一个! 思路清晰了

查看全部评分

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
36 [报告]
发表于 2017-06-21 21:00 |只看该作者
本帖最后由 Windows19 于 2017-06-21 21:09 编辑

回复 35# 523066680

1 应该分别统计   对的

2 应该按出现的次数统一排列   对的
abc  (100次 (省略细节
123  (99次
def   (50次
456  (20次





这样理解对的


3 我检查后真的有很多只有数字的行被排除了


还有符号行都被排除了
所以少了3/1




论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
37 [报告]
发表于 2017-06-21 21:03 |只看该作者
本帖最后由 Windows19 于 2017-06-21 21:07 编辑

回复 30# 523066680

另外我测试发现   如果行中1个字母都没有    竞然是不会输出   所以和原文件行数不对原因   所以少了3/1

论坛徽章:
12
子鼠
日期:2014-10-11 16:46:482016科比退役纪念章
日期:2018-03-16 10:24:0515-16赛季CBA联赛之山东
日期:2017-11-10 14:32:142016科比退役纪念章
日期:2017-09-02 15:42:4715-16赛季CBA联赛之佛山
日期:2017-08-28 17:11:5515-16赛季CBA联赛之浙江
日期:2017-08-24 16:55:1715-16赛季CBA联赛之青岛
日期:2017-08-17 19:55:2415-16赛季CBA联赛之天津
日期:2017-06-29 10:34:4315-16赛季CBA联赛之四川
日期:2017-05-16 16:38:55黑曼巴
日期:2016-07-19 15:03:112015亚冠之萨济拖拉机
日期:2015-05-22 11:38:5315-16赛季CBA联赛之北京
日期:2019-08-13 17:30:53
38 [报告]
发表于 2017-06-21 21:23 |只看该作者
sunzhiguolu 发表于 2017-06-21 18:41
回复 16# 523066680
大神的功力果然是非同凡响,我是小白。
有几个问题向大神请教,还请帮忙指点,谢谢。 ...

这个模块 IO::Handle 是为了开启自动刷新缓冲区,也就是为了使用:
STDOUT->autoflush(1);

有些Perl终端,在print 的时候输出顺序和预想的不一样,比如我 for (1..3) { print $_,"\n" },有可能输出显示是
3
1
2
开了自动刷新缓冲就没这个问题


    ANALYSE_AND_EXPORT:
    {
        ...
    }

这个 ANALYSE_AND_EXPORT: 和 { } 可以去掉,只留下中间代码部分一样可以运行。
我只是不想代码看起来一大坨,用{ } 将代码分段括起来,再加上一个标签让其看起来像个函数。

ANALYSE_AND_EXPORT: 是个标签,可以通过 goto 跳转的那种。

评分

参与人数 1信誉积分 +10 收起 理由
Windows19 + 10 赞一个!

查看全部评分

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
39 [报告]
发表于 2017-06-21 21:53 |只看该作者
回复 30# 523066680
  1. ANALYSE_AND_EXPORT:
  2. {
  3.     。。。
  4.     grep { open $FH{$_}, ">:raw", "$wd/T${_}.txt" or die "$!" } @group;
  5.     。。。
  6.     if ($line=~/([a-zA-Z])/)
  7. }
复制代码
":>raw" 这个方式我一直都搞不太明白和普通的 ">" 区别在哪里?
大神能否给个示例代码?

在 while 循环中
if ($line=~/([a-zA-Z])/) 针对每行的头一个字母字符进行统计? 其余的呢,能否解释下剩余部分如何处理?


论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
40 [报告]
发表于 2017-06-21 21:58 |只看该作者
sunzhiguolu 发表于 2017-06-21 21:53
回复 30# 523066680
":>raw" 这个方式我一直都搞不太明白和普通的 ">" 区别在哪里?
大神能否给个示例代 ...

我以为是523066680老师上菜牌了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP