免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3027 | 回复: 15
打印 上一主题 下一主题

[文本处理] 一个比较复杂的正则求助(已经上传原文本文件) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-06-28 08:13 |只看该作者 |倒序浏览
本帖最后由 nssn 于 2014-06-29 19:47 编辑

源文件.rar (29.77 KB, 下载次数: 4) 文本原文件:

原始格式:

1.将1kg物质物温度升高1℃所需的热量称为该物质的( ).
A.比热容
B.汽化潜热
C.燃料发热值
D.凝结热
试题编号:AA001
答案:A
试题类型:单选题

2.在一定温度下,1kg液体完全转变为同温度的蒸汽所需要的热量称为该物质的( ).
A.比热容
B.汽化潜热
C.燃料发热值
D.凝结热
试题编号:AA001
答案:B
试题类型:单选题

3.整个传热过程是由( )传热方式组成.
A.两种
B.三种
C.四种
D.五种
试题编号:AA001
答案:B
试题类型:单选题


处理后格式(1):

1.将1kg物质物温度升高1℃所需的热量称为该物质的( 比热容 ).
2.在一定温度下,1kg液体完全转变为同温度的蒸汽所需要的热量称为该物质的( 汽化潜热 ).
3.整个传热过程是由( 三种 )传热方式组成.

处理后格式(2):

1.将1kg物质物温度升高1℃所需的热量称为该物质的( A ).
A.比热容  B.汽化潜热  C.燃料发热值  D.凝结热
2.在一定温度下,1kg液体完全转变为同温度的蒸汽所需要的热量称为该物质的( B ).
A.比热容  B.汽化潜热  C.燃料发热值  D.凝结热
3.整个传热过程是由( B )传热方式组成.
A.两种  B.三种  C.四种  D.五种

用正则能不能处理?如果能处理的话,请给讲解一下,感谢

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
2 [报告]
发表于 2014-06-28 08:28 |只看该作者
本帖最后由 Herowinter 于 2014-06-28 08:33 编辑

物理帝,给跪了。
正则有难度,但是文本处理应该可以,把
A.B.C.D 4个选项记录下来,再找到答案这一行,
把正确的选项填进去。

论坛徽章:
0
3 [报告]
发表于 2014-06-28 09:35 |只看该作者

  1. 1193 09:32:09 root@localhost:/dev/shm/CU/4143824 # sed -r ':T;N;s/([0-9].*)\( \)([^\n]*\.).*([A-D])\.([^\n]+).*:\3\n[^\n]*/\1( \4 )\2/;TT;' q
  2. 1.将1kg物质物温度升高1℃所需的热量称为该物质的( 比热容 ).

  3. 2.在一定温度下,1kg液体完全转变为同温度的蒸汽所需要的热量称为该物质的( 汽化潜热 ).

  4. 3.整个传热过程是由( 三种 )传热方式组成.
  5. 1194 09:32:20 root@localhost:/dev/shm/CU/4143824 # cat q
  6. 1.将1kg物质物温度升高1℃所需的热量称为该物质的( ).
  7. A.比热容
  8. B.汽化潜热
  9. C.燃料发热值
  10. D.凝结热
  11. 试题编号:AA001
  12. 答案:A
  13. 试题类型:单选题

  14. 2.在一定温度下,1kg液体完全转变为同温度的蒸汽所需要的热量称为该物质的( ).
  15. A.比热容
  16. B.汽化潜热
  17. C.燃料发热值
  18. D.凝结热
  19. 试题编号:AA001
  20. 答案:B
  21. 试题类型:单选题

  22. 3.整个传热过程是由( )传热方式组成.
  23. A.两种
  24. B.三种
  25. C.四种
  26. D.五种
  27. 试题编号:AA001
  28. 答案:B
  29. 试题类型:单选题
  30. 1195 09:32:23 root@localhost:/dev/shm/CU/4143824 #
复制代码
掺进中文以后文本似乎不好处理了……

  1. 1195 09:32:23 root@localhost:/dev/shm/CU/4143824 # sed 's/^$//' q
  2. 1.将1kg物质物温度升高1℃所需的热量称为该物质的( ).
  3. A.比热容
  4. B.汽化潜热
  5. C.燃料发热值
  6. D.凝结热
  7. 试题编号:AA001
  8. 答案:A
  9. 试题类型:单选题

  10. 2.在一定温度下,1kg液体完全转变为同温度的蒸汽所需要的热量称为该物质的( ).
  11. A.比热容
  12. B.汽化潜热
  13. C.燃料发热值
  14. D.凝结热
  15. 试题编号:AA001
  16. 答案:B
  17. 试题类型:单选题

  18. 3.整个传热过程是由( )传热方式组成.
  19. A.两种
  20. B.三种
  21. C.四种
  22. D.五种
  23. 试题编号:AA001
  24. 答案:B
  25. 试题类型:单选题
  26. 1196 09:33:13 root@localhost:/dev/shm/CU/4143824 #
复制代码

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
4 [报告]
发表于 2014-06-28 09:49 |只看该作者
格式1:
  1. awk -F'[:.]' '/^[0-9]/{a=$0;next}/^[A-Z]/{b[$1]=$2;next}/答案/{print gensub("\\\( ","&"b[$2]" ","g",a)}' file
  2. 1.将1kg物质物温度升高1℃所需的热量称为该物质的( 比热容 ).
  3. 2.在一定温度下,1kg液体完全转变为同温度的蒸汽所需要的热量称为该物质的( 汽化潜热 ).
  4. 3.整个传热过程是由( 三种 )传热方式组成.
复制代码

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
5 [报告]
发表于 2014-06-28 09:55 |只看该作者
格式二:
  1. awk -F'[:.]' '/^[0-9]/{a=$0;next}/^[A-Z]/{b=b?b" "$0:$0;next}/答案/{print gensub("\\\( ","&"$2" ","g",a)"\n"b;b=c}' 1
  2. 1.将1kg物质物温度升高1℃所需的热量称为该物质的( A ).
  3. A.比热容 B.汽化潜热 C.燃料发热值 D.凝结热
  4. 2.在一定温度下,1kg液体完全转变为同温度的蒸汽所需要的热量称为该物质的( B ).
  5. A.比热容 B.汽化潜热 C.燃料发热值 D.凝结热
  6. 3.整个传热过程是由( B )传热方式组成.
  7. A.两种 B.三种 C.四种 D.五种
复制代码

论坛徽章:
0
6 [报告]
发表于 2014-06-28 14:54 |只看该作者
感谢,我的系统是XP,有gawk.exe sed.exe  试了一下,不行

另:能否解释一下过程,感谢

论坛徽章:
7
天秤座
日期:2014-08-07 13:56:30丑牛
日期:2014-08-27 20:34:21双鱼座
日期:2014-08-27 22:02:21天秤座
日期:2014-08-30 10:39:11双鱼座
日期:2014-09-21 20:07:532015年亚洲杯之日本
日期:2015-02-06 14:00:282015亚冠之大阪钢巴
日期:2015-11-02 14:50:19
7 [报告]
发表于 2014-06-28 23:22 |只看该作者
给学生印答案的好人吗。。点赞啊点赞{:3_189:}

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
8 [报告]
发表于 2014-06-28 23:36 |只看该作者
回复 7# MeRcy_PM

这个需求确实蛮实用的。。。
   

论坛徽章:
0
9 [报告]
发表于 2014-06-29 00:25 |只看该作者
请问,如何将 awk -F'[:.]' '/^[0-9]/{a=$0;next}/^[A-Z]/{b=b?b" "$00;next}/答案/{print gensub("\\\( ","&"$2" ","g",a)"\n"b;b=c}' 1

转化为*.awk形式的文件

论坛徽章:
7
天秤座
日期:2014-08-07 13:56:30丑牛
日期:2014-08-27 20:34:21双鱼座
日期:2014-08-27 22:02:21天秤座
日期:2014-08-30 10:39:11双鱼座
日期:2014-09-21 20:07:532015年亚洲杯之日本
日期:2015-02-06 14:00:282015亚冠之大阪钢巴
日期:2015-11-02 14:50:19
10 [报告]
发表于 2014-06-29 00:28 |只看该作者
回复 8# Herowinter
大题处理不了千万不能略啊!~

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP