亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
123下一頁
最近訪問板塊 發(fā)新帖
查看: 4673 | 回復: 22
打印 上一主題 下一主題

請教一個perl跨行匹配的問題 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-07-04 11:13 |只看該作者 |倒序瀏覽
我現(xiàn)在有這樣一段文本:
      I am linda:
          id = 1
          id = 2
      okey:
      I am panda:
         id = 3
         id = 4
      time left:
我想取出I am linda和okey之間的內(nèi)容, 還有I am panda和time left之間的內(nèi)容, 怎么用perl實現(xiàn)哈,謝謝!

論壇徽章:
3
摩羯座
日期:2013-09-04 12:01:36申猴
日期:2013-10-23 12:12:23CU十二周年紀念徽章
日期:2013-10-24 15:41:34
2 [報告]
發(fā)表于 2013-07-04 11:33 |只看該作者
本帖最后由 grshrd49 于 2013-07-04 12:11 編輯
  1. @f = <DATA>;
  2. $c = 0;
  3. for(@f){
  4.         $c = 1,next if(/^i am|^she is/i);
  5.         $c = 0,next if(/okey:|time left:/);
  6.         push @arr,$_ if($c == 1);
  7. }
  8. print "$_\n" for(@arr);

  9. __DATA__
  10. I am linda:
  11. id = 1
  12. id = 2
  13. okey:
  14. I am panda:
  15. id = 3
  16. id = 4
  17. time left:
復制代碼

論壇徽章:
0
3 [報告]
發(fā)表于 2013-07-04 11:56 |只看該作者
謝謝您的回答, 可能我寫的不夠準確 , 應該是從下面的內(nèi)容提取:
I am linda:
id = 1
id = 2
okey:
she is panda:
id = 3
id = 4
time left:

論壇徽章:
3
摩羯座
日期:2013-09-04 12:01:36申猴
日期:2013-10-23 12:12:23CU十二周年紀念徽章
日期:2013-10-24 15:41:34
4 [報告]
發(fā)表于 2013-07-04 12:12 |只看該作者
回復 3# lida5336


    編輯過了,你再試試

論壇徽章:
0
5 [報告]
發(fā)表于 2013-07-04 12:35 |只看該作者
謝謝, 我試試

論壇徽章:
0
6 [報告]
發(fā)表于 2013-07-04 12:54 |只看該作者
我試了, 這樣好像不行

論壇徽章:
3
CU十二周年紀念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
7 [報告]
發(fā)表于 2013-07-04 13:59 |只看該作者
本帖最后由 mcshell 于 2013-07-04 14:10 編輯
  1. perl -lne 'BEGIN{$/=""};@re=/:([\s\S]+?)\s*.*:/g;END{print @re}' file
  2. or
  3. perl -lne 'print unless /.*:/' file
復制代碼

論壇徽章:
0
8 [報告]
發(fā)表于 2013-07-04 14:45 |只看該作者
高手啊,完全沒看懂, 我是小白, 不好意思, 給大家添麻煩了, 我是想問問有沒有什么正則表達式可以取出我想要的內(nèi)容.
再次更正一下文本:
(空格)    I am linda:
(空格)    id = 1
               id = 2
            okey:
            she is panda:
              id = 3
              id = 4
            time left:

論壇徽章:
3
摩羯座
日期:2013-09-04 12:01:36申猴
日期:2013-10-23 12:12:23CU十二周年紀念徽章
日期:2013-10-24 15:41:34
9 [報告]
發(fā)表于 2013-07-04 15:28 |只看該作者
回復 8# lida5336


沒事加什么空格,很好玩嘛....
  1. @f = <DATA>;
  2. $c = 0;
  3. for(@f){
  4.         $c = 1,next if(/^\s+i am|^\s+she is/i);
  5.         $c = 0,next if(/\s+okey:|\s+time left:/);
  6.         push @arr,$_ if($c == 1);
  7. }
  8. print "$_\n" for(@arr);

  9. __DATA__
  10.       I am linda:
  11.       id = 1
  12.       id = 2
  13.      okey:
  14.      she is panda:
  15.      id = 3
  16.      id = 4
  17.      time left:
復制代碼

論壇徽章:
0
10 [報告]
發(fā)表于 2013-07-04 17:25 |只看該作者
  1. #!/usr/bin/perl
  2. use warnings;
  3. use strict;

  4. undef $/;
  5. my (@a, @b);
  6. while (my $line = <>) {
  7.     if ($line =~ m/I am \w+:(.*?)okey:/gsi) {   
  8.         (my $copy = $1) =~ s/\s+//g;
  9.         push (@a, $copy);
  10.     }
  11.     if ($line =~ m/she is \w+:(.*?)time left:/gsi) {  
  12.         (my $copy = $1) =~ s/\s+//g;
  13.         push (@b, $copy);
  14.     }
  15.     print "$_\n" for (@a, @b);
  16. }
復制代碼
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP