免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: bmne

[文本处理] 精准提取 [复制链接]

论坛徽章:
39
双子座
日期:2014-08-06 17:37:19极客徽章
日期:2016-12-07 14:03:402017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:39:4215-16赛季CBA联赛之新疆
日期:2017-03-24 16:36:1915-16赛季CBA联赛之江苏
日期:2017-04-26 17:19:08黑曼巴
日期:2018-03-07 18:56:5615-16赛季CBA联赛之八一
日期:2018-03-09 10:44:1015-16赛季CBA联赛之江苏
日期:2018-03-12 15:12:1915-16赛季CBA联赛之青岛
日期:2018-03-16 09:13:0515-16赛季CBA联赛之山东
日期:2018-04-27 18:23:0515-16赛季CBA联赛之新疆
日期:2018-05-04 11:29:30
发表于 2017-03-24 17:57 |显示全部楼层
本帖最后由 o枫叶o飘零 于 2017-03-24 18:01 编辑

回复 10# bmne

3楼的命令有些情况木有判定出来

a1a1a1a1a1
A1A1A1A1A1
AaAaAaAaAa....
AA11AA11AA11类似这种穿插情况

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
发表于 2017-03-24 18:18 |显示全部楼层
本帖最后由 bmne 于 2017-03-25 06:52 编辑

回复 11# o枫叶o飘零


请帮助下

我希望进一步给更具体的另一个命令(命令请结合1楼参看3楼)

保证提取的每一行中肯定含有3位(及同一行中含有的2位、1位)。但,在每一行中,低于3位的将不再输出

比如只输出这样的行
Agf76kj9
765gE8jt

这样的行,不再输出
jT85B89gd
V7m9wK
34A76nj




论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-09-07 06:20:00程序设计版块每日发帖之星
日期:2015-09-07 06:20:00
发表于 2017-03-24 22:28 |显示全部楼层
  1. [root@CentOS_6 shell]# cat d.txt | egrep "[A-Z]" | egrep "[a-z]" | egrep "[0-9]" | egrep -v "[0-9]{4,}|([a-z]|[A-Z]){4,}"
  2. 23Kwy10e97
  3. MAu4A22fa8
  4. te2t26W5OH
  5. [root@CentOS_6 shell]# cat d.txt
  6. Kyswy10e97
  7. MAutA22fa8
  8. tet26vCWOH
  9. RExoD34ica
  10. cxyp518228
  11. xjie520lzx
  12. 55566hz206
  13. liu3668712
  14. xj800602xj
  15. BIN1981BIN
  16. 202127ABCA
  17. HUANAN2000
  18. 19850827XL
  19. QAZ1314520
  20. JANE820515
  21. yPH3O8apjg
  22. SFynE44idb
  23. ynjQnnL733
  24. 23Kwy10e97
  25. MAu4A22fa8
  26. te2t26W5OH
复制代码

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
发表于 2017-03-25 06:42 |显示全部楼层


谢谢 3# elu_ligao

1、若有时间,麻烦再修改下(看图片)

  1. SF43yn22E44i8db
  2. y6n7j4Q8n5n9L7b3y3
  3. 23Kwy10e97
  4. MAu4A22fa8
  5. te2t26W5OH
  6. 123bh56m7uy89
  7. c1V3h5j7
  8. 3b5H6u7f8p
  9. 9456U78gy
  10. 72jhGD83bh
  11. 7c8f9a3k
  12. 4N2X5V
复制代码


2、若太忙,3楼的不用修改了。能给出进一步的12楼要求的最理想了



1.jpg

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
发表于 2017-03-25 06:53 |显示全部楼层


命令满足要求,谢谢 13# zy86416779


请问,若有时间,麻烦给出12楼进一步的命令(更精准具体)





论坛徽章:
2
综合交流区版块每日发帖之星
日期:2016-07-06 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:00
发表于 2017-03-25 11:07 |显示全部楼层
回复 4# sunzhiguolu

论坛徽章:
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
发表于 2017-03-25 11:37 |显示全部楼层
我希望进一步给更具体的另一个命令(命令请结合1楼参看3楼)

保证提取的每一行中肯定含有3位及同一行中含有的2位、1位)。但,在每一行中,低于3位的将不再输出

比如只输出这样的行
Agf76kj9
765gE8jt

这样的行,不再输出
jT85B89gd
V7m9wK
34A76nj
你的处理要求能否在变化之后 像主题帖那样将新的处理要求完整的描述一下,别这里加点要求那里减少点要求 这样大家在后续的回帖中容易理解你的需求变化。
不然,需要将你每一楼层的心理需求都得分析一遍。(只是提议,望采纳)
我说下我对你的需求的理解,你看下是否满足你的处理条件。
1.> 必须同时包含 (字母 和 数字) 字符
2.> (字母 或 数字) 序列其中任一序列的长度 如: (765gE8jt) 必须满足正好是 3 个字符, 长度 > 3 或者 长度 < 3 均不满足条件

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
发表于 2017-03-25 12:18 |显示全部楼层
回复 17# sunzhiguolu



让大牛说了这么多话。不好意思

为什么又要进一步帮助另一个命令?(可看看12楼)

实话,突然感觉1楼的字符串提取后,还是没有规律可以借鉴,很乱。所以,想进一步细化,看看能否发现其中规律

要求:只提取(按要求指定字母或数字的位数)大小写字母混合并有数字的行。单一大写或小写字母加数字的行不提取

比如:
提取字母字符串或数字字符串最多位数是3位的行(每一行里面除了3位的字符串外,可以有2位及1位的字符串)。但,整个行里面必须有一个是3位的字符串,若没有则不提取该行。


  1. SF43yn22E44i8db
  2. y6n7j4Q8n5n9L7b3y3
  3. 23Kwy10e97
  4. MAu4A22fa8
  5. te2t26W5OH
  6. 123bh56m7uy89
  7. c1V3h5j7
  8. 3b5H6u7f8p
  9. 9456U78gy
  10. 72jhGD83bh
  11. 7c8f9a3k
  12. 4N2X5V
复制代码


输出

  1. 23Kwy10e97
  2. MAu4A22fa8
复制代码




这样,应该是能看明白了估计


谢谢



论坛徽章:
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
发表于 2017-03-25 12:37 |显示全部楼层
回复 18# bmne
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. sub Valid{
  5.     return 0 if (!@_);
  6.     length ($_[-1]) ? 0 : 1;
  7. }

  8. while (<DATA>){
  9.     next if (/[A-Z]/ + /[a-z]/ == 1);
  10.     print if (Valid (/(\d{3})(\d?)/) or /\d/ and Valid (/([a-z]{3})([a-z]?)/i));
  11. }

  12. __DATA__
  13. SF43yn22E44i8db
  14. y6n7j4Q8n5n9L7b3y3
  15. 23Kwy10e97
  16. MAu4A22fa8
  17. te2t26W5OH
  18. 123bh56m7uy89
  19. c1V3h5j7
  20. 3b5H6u7f8p
  21. 9456U78gy
  22. 72jhGD83bh
  23. 7c8f9a3k
  24. 4N2X5V

复制代码



论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
发表于 2017-03-25 13:01 |显示全部楼层
回复 19# sunzhiguolu


谢谢

借鉴一下你的。可还是 算不过账来
没成功

cat b.txt|egrep '[A-Z]'|egrep '[a-z]'|egrep '[0-9]'|egrep  '(\d{3})(\d?)|([a-z]|[A-Z]){3}([a-z]?|[A-Z]?)'



您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP