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

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

Chinaunix

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

perl檢查文本,這個(gè)沒(méi)有人會(huì)了嗎 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2016-05-03 16:37 |只看該作者 |倒序?yàn)g覽
本帖最后由 南宮慕容007 于 2016-05-03 17:08 編輯

需要檢查的文本格式如下(其中兩段):
"chengwenqiang_near_013_stn1.rec"
0 4700000 sil -2387.083252 !SENT_START
4700000 5100000 k-b+i1 -302.597351 并
5100000 6100000 b-i4+ng -734.077454
6100000 6800000 i4-ng+b -512.013428
6800000 6800000 sp -0.003945
6800000 7500000 m-b+u1 -468.067230 不
7500000 8800000 iao1-u4+f -958.988708
8800000 8800000 sp -0.003945
8800000 9500000 u2-f+a2 -428.034058 反映
9500000 10300000 f-a3+n -506.500671
10300000 11300000 ao3-n+y -531.887451
11300000 11800000 d-y+i1 -300.428864
11800000 12700000 ng-i4+ng -497.844360
12700000 13600000 i3-ng+sil -585.250793
13600000 13800000 sil -146.106827
13800000 15000000 sil-e2+l -806.901611 俄羅斯
15000000 15600000 e2-l+uai1 -417.233917
15600000 16400000 l-uo2+s -580.261353
16400000 17600000 uo2-s+ia1 -747.893921
17600000 18200000 s-i1+d -396.709656
18200000 18200000 sp -0.003945
18200000 18700000 i1-d+e5 -355.250977 的
18700000 19500000 g-e5+q -524.110657
19500000 19500000 sp -0.003945
19500000 20500000 e5-q+ia1 -673.961609 潛力
20500000 21200000 q-ia2+n -436.561737
21200000 22100000 iu2-n+l -565.277527
22100000 23400000 d-l+i1 -814.190063
23400000 25200000 l-i4+sil -1138.360718
25200000 25200000 sp -0.003945
25200000 30700000 sil -2824.102051 !SENT_START
.
"chengwenqiang_near_013_stn2.rec"
0 4700000 sil -2540.468994 !SENT_START
4700000 5200000 sh-p+i2 -378.305511 平均
5200000 6100000 k-i2+ng -647.795959
6100000 7300000 i2-ng+j -857.231262
7300000 8000000 m-j+u1 -559.893005
8000000 9400000 q-u1+n -873.364685
9400000 9800000 er3-n+y -243.902496
9800000 9800000 sp -0.003945
9800000 10500000 r-y+ia1 -426.244324 月薪
10500000 12100000 uo3-ue4+x -1055.373901
12100000 13300000 ue1-x+i1 -739.117004
13300000 14200000 f-i1+n -581.456116
14200000 15900000 i1-n+sil -1161.868530
15900000 16800000 sil -482.444672
16800000 17600000 s-y+uai4 -555.445923 一百
17600000 18300000 y-i4+b -479.175873
18300000 19100000 i5-b+ai3 -589.891968
19100000 19900000 b-ai3+w -511.238281
19900000 19900000 sp -0.003945
19900000 20600000 ai2-w+u1 -423.596558 五十
20600000 21300000 w-u3+sh -478.549774
21300000 22400000 u3-sh+i2 -924.412903
22400000 22900000 sh-i2+m -398.364105
22900000 22900000 sp -0.003945
22900000 23400000 i5-m+ei1 -315.483002 美元
23400000 23900000 m-ei3+y -264.799408
23900000 24600000 ei3-y+ua2 -358.792236
24600000 25500000 y-ua2+n -463.112457
25500000 26500000 ua2-n+z -592.110840
26500000 26500000 sp -0.003945
26500000 27300000 n-z+ua1 -537.829163 左右
27300000 28300000 j-uo3+y -643.170410
28300000 29400000 uo4-y+ou4 -644.249451
29400000 30900000 y-ou4+uai1 -1013.117310
30900000 36100000 sil -2687.381104
36100000 36600000 sil -249.693359 !SENT_START
.
確保每一段的第二行和倒數(shù)第二行都以!SENT_START結(jié)尾(最后一行是一個(gè)句號(hào)),如果不滿足則打印出該段的第一行:

論壇徽章:
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
2 [報(bào)告]
發(fā)表于 2016-05-03 18:10 |只看該作者
回復(fù) 1# 南宮慕容007

  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. my ($sRegx, @aData) = (qr/!SENT_START\s*\z/);
  5. while (<>){
  6.     if (!/\A\s*\./){
  7.         push @aData, $_;
  8.         next;
  9.     }
  10.     $aData[1] =~ /$sRegx/ and $aData[-1] =~ /$sRegx/ ? print @aData : print $aData[0];
  11.     @aData = ();
  12. }
復(fù)制代碼

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2016-05-04 10:09 |只看該作者
my ($sRegx, @aData) = (qr/!SENT_START\s*\z/);這行代碼的意思是創(chuàng)建一個(gè)正則表達(dá)式賦給$sRegx吧,那@aData出現(xiàn)在這里干嘛回復(fù) 2# sunzhiguolu


   

論壇徽章:
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ā)表于 2016-05-04 10:33 |只看該作者
回復(fù) 3# 南宮慕容007
my ($sRegx, @aData) = (qr/!SENT_START\s*\z/);
等價(jià)于下面這樣:
my $sRegx = qr/!SENT_START\s*\z/;
my @aData;

   

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2016-05-04 10:40 |只看該作者
我怎么這么水,表示好尷尬,后來(lái)想到這個(gè)和python里面的賦值挺像的,賦值兩邊長(zhǎng)度可以不一樣回復(fù) 4# sunzhiguolu


   

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2016-05-04 11:06 |只看該作者
本帖最后由 南宮慕容007 于 2016-05-04 11:15 編輯

my ($sRegx, @aData) = (qr/!SENT_START\s*\z/);#創(chuàng)建正則表達(dá)式,賦值給$sRegx
while (<>){                                                       #逐行讀取數(shù)據(jù)
    if (!/\A\s*\./){                                               #如果該行不匹配正則表達(dá)式(該行不是一個(gè)句號(hào))
        push @aData, $_;                                      #將該行放在@aData數(shù)組里面
        next;                                                     #進(jìn)行下次循環(huán),讀取下一行數(shù)據(jù)(讀取下一行時(shí)@data數(shù)組是如何變化的?,實(shí)在原來(lái)@aData數(shù)組后面加一行數(shù)據(jù)嗎)
    }

    $aData[1] =~ /$sRegx/ and $aData[-1] =~ /$sRegx/ ? print @aData : print $aData[0];#如果@aData數(shù)組的第二個(gè)和倒數(shù)第一個(gè)匹配正則表達(dá)式,則打印出該數(shù)組,否則打印出該數(shù)                                                                                                                                                                                          

                                                                                                                               #組的第一個(gè)(我想把匹配的和不匹配的分開(kāi)輸出到兩個(gè)文件里去,在linux系統(tǒng)下
    @aData = ();                                                                                                        #把a(bǔ)Data數(shù)組置空
}
回復(fù) 2# sunzhiguolu


   

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2016-05-04 11:17 |只看該作者
我看了一個(gè)早上,總算是理解了,perl的功能太強(qiáng)大了,這么幾行就把問(wèn)題解決了,就是用正則表達(dá)式有點(diǎn)難理解,而且這些方法不容易想到回復(fù) 2# sunzhiguolu


   
您需要登錄后才可以回帖 登錄 | 注冊(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