免费注册 查看新帖 |

Chinaunix

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

文本处理的问题 [复制链接]

论坛徽章:
8
戌狗
日期:2014-09-26 16:39:44水瓶座
日期:2014-10-10 02:06:57金牛座
日期:2014-10-11 23:04:042015亚冠之首尔
日期:2015-06-23 15:37:0015-16赛季CBA联赛之天津
日期:2016-01-22 18:58:2915-16赛季CBA联赛之佛山
日期:2016-05-31 19:18:0815-16赛季CBA联赛之同曦
日期:2016-08-10 16:26:3315-16赛季CBA联赛之辽宁
日期:2018-01-10 11:47:40
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-03 17:14 |只看该作者 |倒序浏览
本帖最后由 wiliiwin 于 2014-11-03 17:49 编辑
  1. <PAGE PAGENO ='1' RECORDNUM='10'>
  2. 1029451|+|944002010000541249|+|999|+|12|+|0|+|31312|-|
  3. 996941|+|100870912250012222|+|999|+|12|+|0|+|888888888555555|-|
  4. 1029716|+|961009010000055621|+|999|+|12|+|0|+|qwwew|-|
  5. 1030582|+|961003010000132335|+|999|+|12|+|12|+|22222|-|
  6. 1029694|+|937006010000000001|+|999|+|3|+|0|+|742947974382977|-|
  7. 1029057|+|944001010000528906|+|999|+|3|+|0|+|11111111111111111111|-|
  8. 1030198|+|944000010000580009|+|999|+|3|+|0|+|11111111111111111111|-|
  9. 950152|+|100830440700010001|+|999|+|12|+|12|+|3456789|-|
  10. 1030578|+|961000010000118816|+|999|+|12|+|0|+|123456|-|
  11. 1030611|+|961005010000132341|+|999|+|12|+|0|+|11|-|
  12. </PAGE>
  13. <PAGE PAGENO ='2' RECORDNUM='3'>
  14. 1027383|+|144003010000412232|+|999|+|3|+|0|+|11111111111111111111|-|
  15. 8006634|+|961007010000675750|+|999|+|12|+|0|+|342343|-|
  16. 1031152|+|961004010000261315|+|999|+|6|+|6|+|56568383838385656|-|
  17. </PAGE>   
复制代码
想得到 <PAGE PAGENO   和</PAGE>之间的数据,用其他的办法我也知道可以处理,最近看到零宽度断言,因此就想用零断言来处理,
代码如下:
  1. #!/usr/bin/perl -w
  2. $/="</PAGE>";
  3. open(FILE,"<1.txt");
  4. while(<FILE>)
  5. {
  6.   if(m#(?<=<PAGE.*>)(.+)(?=</PAGE>)#sg)
  7.   {
  8.       printf "$2\n";
  9.   }
  10. }
复制代码
但是这个报错
  1. Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE ?<=<PAGE.*>(.+)(<?=</PAGE>)/ at ./1.pl line 6
复制代码
请各位perl神指点下,本人perl新手,大家见笑了。

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
2 [报告]
发表于 2014-11-03 17:35 |只看该作者
回复 1# wiliiwin

0. strict
use strict;
use warnings;

2. always have block {...}
    if(...) { ... }

3. different error message ...
$ perl xml.pl
Variable length lookbehind not implemented in regex m/(?<=<PAGE.*>)(.+)(?=</PAGE>)/ at xml.pl line 5.

$ perl -v
This is perl 5, version 14, subversion 2 (v5.14.2) built for i686-linux-gnu-thread-multi-64int
...

论坛徽章:
8
戌狗
日期:2014-09-26 16:39:44水瓶座
日期:2014-10-10 02:06:57金牛座
日期:2014-10-11 23:04:042015亚冠之首尔
日期:2015-06-23 15:37:0015-16赛季CBA联赛之天津
日期:2016-01-22 18:58:2915-16赛季CBA联赛之佛山
日期:2016-05-31 19:18:0815-16赛季CBA联赛之同曦
日期:2016-08-10 16:26:3315-16赛季CBA联赛之辽宁
日期:2018-01-10 11:47:40
3 [报告]
发表于 2014-11-03 17:59 |只看该作者
知道了  零宽度不支持量词的  
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP