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

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 2226 | 回復(fù): 6
打印 上一主題 下一主題

請(qǐng)教提取信息 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2017-05-16 22:50 |只看該作者 |倒序?yàn)g覽
大家好!小白請(qǐng)教一個(gè)提取信息的問(wèn)題,
文件如下:

AAAA
112ASDFGH

[USE]
Time: Mon.13
user: James
detail: xxxx

[USE]
Time: June.01
user: Dan
AA
BBB

(Time: 和 user: 后面有空格)
希望通過(guò)[USE]關(guān)鍵字提取綠色部分的信息,tab分隔得到:
Mon.13    James
June.01    Dan


論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2017-05-17 00:59 |只看該作者
樓主這樣:
首先,讀入整個(gè)文件到$mydoc;
然后,@mysec=split("[USE]",$mydoc);  #就是用[USE]把真?zhèn)文件分為多個(gè)片段。
再 foreach $sec(@mysec)
{
  if(  $sec=~ m/Time.+)/)  #或許要  =~ m/Time.+)$/
{
    $neettime= $1;
}

if(  $sec=~ m/user.+)/)  #或許要  {
    $needuser= $1;
}
$res=$neettime.$needuser;



}

論壇徽章:
307
程序設(shè)計(jì)版塊每周發(fā)帖之星
日期:2016-04-08 00:41:33操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-02 06:20:00每日論壇發(fā)貼之星
日期:2015-09-02 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-04 06:20:00每日論壇發(fā)貼之星
日期:2015-09-04 06:20:00每周論壇發(fā)貼之星
日期:2015-09-06 22:22:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-09 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-19 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-20 06:20:00每日論壇發(fā)貼之星
日期:2015-09-20 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-24 06:20:00
3 [報(bào)告]
發(fā)表于 2017-05-17 10:12 |只看該作者
  1. import io.Source
  2. import util.matching.Regex

  3. var ok = false
  4. var n = 0
  5. val matching = new Regex(raw"\A(?:Time|user)")
  6. for(s <- Source.fromFile(args(0)).getLines){
  7.         if(s.startsWith("[USE]")){
  8.                 if(n > 0) println("")
  9.                 ok = true
  10.                 n = 0
  11.         }else{
  12.                 if(ok){
  13.                         val lst = s.split(": ")
  14.                         val v = matching.findFirstIn(lst(0))
  15.                         if(v.isDefined)        print(s"${lst(1)}\t")
  16.                         n += 1
  17.                         ok = n <= 2
  18.                 }
  19.         }
  20. }
復(fù)制代碼


評(píng)分

參與人數(shù) 1信譽(yù)積分 +10 收起 理由
rubyish + 10 3 Q ~ ~

查看全部評(píng)分

論壇徽章:
307
程序設(shè)計(jì)版塊每周發(fā)帖之星
日期:2016-04-08 00:41:33操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-02 06:20:00每日論壇發(fā)貼之星
日期:2015-09-02 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-04 06:20:00每日論壇發(fā)貼之星
日期:2015-09-04 06:20:00每周論壇發(fā)貼之星
日期:2015-09-06 22:22:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-09 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-19 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-20 06:20:00每日論壇發(fā)貼之星
日期:2015-09-20 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-24 06:20:00
4 [報(bào)告]
發(fā)表于 2017-05-17 10:24 |只看該作者
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. my @aData = ();
  5. my $ok = 0;
  6. while(<DATA>){
  7.         chomp;
  8.         if(/\A\[USE]/){
  9.                 print(join("\t", splice(@aData, 0)), "\n") if(@aData);
  10.                 $ok = 1, next;
  11.         }
  12.         push(@aData, $1) if(/\A(?:Time|user):\s+(.*)/);
  13. }
  14. print(join("\t", splice(@aData, 0)), "\n") if(@aData);

  15. __DATA__
  16. [USE]
  17. Time: Mon.13
  18. user: James
  19. detail: xxxx

  20. [USE]
  21. Time: June.01
  22. user: Dan
  23. AA
  24. BBB
復(fù)制代碼


Scala 沒(méi)有 next 操作符 太操蛋了。

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2017-05-17 10:48 |只看該作者

perl?你這用的什么語(yǔ)言。

論壇徽章:
145
技術(shù)圖書徽章
日期: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技術(shù)圖書徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
6 [報(bào)告]
發(fā)表于 2017-05-17 12:06 |只看該作者
回復(fù) 1# Eva326

$ perl get_key.pl
    Usage  : get_key.pl Segment file
    Example: get_key.pl USE FILE
   
    ---- file: FILE ---------
    [USE]
    Time: Mon.13
    user: Dan


$ perl get_key.pl USE FILE
Mon.13    James
June.01    Dan


$ cat get_key.pl
use strict;
use warnings;

sub message{
  print<<EOF;
    Usage  : $0 Segment file
    Example: $0 USE FILE
   
    ---- file: FILE ---------
    [USE]
    Time: Mon.13
    user: Dan
   
EOF
  exit(1);
}

message() if(@ARGV < 2);
my $sKey = shift;

my $sSeg = "";
my %hSeg = ();
while(<>){
  s/^\s+|\s+$//g;
  #chomp;
  if(m/^\[/){
    if($sSeg eq $sKey){
      print "$hSeg{Time}\t$hSeg{user}\n";
    }
    s/^\[|\]\s*//g;
    $sSeg = $_;
    %hSeg = ();
  }
  else{
    my($sKey, $sVal) = split(/\s*:\s*/, $_, 2);
    if(defined $sVal){
      $hSeg{$sKey} = $sVal;
    }
  }
}

if($sSeg eq $sKey){
  print "$hSeg{Time}\t$hSeg{user}\n";
}


論壇徽章:
307
程序設(shè)計(jì)版塊每周發(fā)帖之星
日期:2016-04-08 00:41:33操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-02 06:20:00每日論壇發(fā)貼之星
日期:2015-09-02 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-04 06:20:00每日論壇發(fā)貼之星
日期:2015-09-04 06:20:00每周論壇發(fā)貼之星
日期:2015-09-06 22:22:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-09 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-19 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-20 06:20:00每日論壇發(fā)貼之星
日期:2015-09-20 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-24 06:20:00
7 [報(bào)告]
發(fā)表于 2017-05-17 17:03 |只看該作者
回復(fù) 5# hztj2005
Scala 啊。

您需要登錄后才可以回帖 登錄 | 注冊(cè)

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP