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

  免費注冊 查看新帖 |

Chinaunix

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

Perl正則匹配時間,求大蝦幫忙 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-08-17 21:38 |只看該作者 |倒序瀏覽
現(xiàn)在有1張表的數(shù)據(jù)每個都是都是以時間類似2013-7-4這樣的形式索引,但是每次我只希望抓取我指定時間,比如當(dāng)前我需要2013-9-28到2013-10-03時間段的,如何用正則表達式判斷數(shù)據(jù)的時間是不是在需要的范圍內(nèi),求大俠寫段Perl程序幫忙。謝謝!

論壇徽章:
0
2 [報告]
發(fā)表于 2013-08-17 23:23 |只看該作者
本帖最后由 范閑丶 于 2013-08-18 02:24 編輯

#!/usr/bin/perl
while (<DATA>) {
if(/2013-10-[0][123]|2013-9-[23][890]/){
print "OK\n";
}
else{
        print "No!\n";
}
}

__DATA__
2013-9-25
2013-9-26
2013-9-27
2013-9-28
2013-9-29
2013-9-30
2013-10-01
2013-10-02
2013-10-03
2013-10-04
2013-10-05

結(jié)果
No!
No!
No!
OK
OK
OK
OK
OK
OK
No!
No!

論壇徽章:
0
3 [報告]
發(fā)表于 2013-08-18 11:13 |只看該作者
本帖最后由 范閑丶 于 2013-08-18 11:21 編輯

昨天這樣寫感覺有點問題:一是程序不靈活,二是是有錯誤,比如2013-9-20沒排除,所以重新寫了一個
#!/usr/bin/perl
while (<DATA>) {
if(/[0-9]{4}-[0-9]{1,2}-[0-9]{2}/){
        $min_date="2013-9-28";
        $max_date="2013-10-03";
        print "$_" if(&com_date($&,$min_date)>=0&&&com_date($&,$max_date)<=0);
}
}
sub com_date
{
        @d0=split /-/,$_[0];
        @d1=split /-/,$_[1];
        for($i=0;$i<3;$i++)
        {
                next if($d0[$i] eq $d1[$i]);
          return $d0[$i]-$d1[$i];
        }
}
__DATA__
2013-9-25
2013-9-26
2013-9-27
2013-9-28
2013-9-29
2013-9-30
2013-10-01
2013-10-02
2013-10-03
2013-10-04
2013-10-05
21sasdasda

結(jié)果
2013-9-28
2013-9-29
2013-9-30
2013-10-01
2013-10-02
2013-10-03

論壇徽章:
1
15-16賽季CBA聯(lián)賽之北控
日期:2016-08-05 14:22:52
4 [報告]
發(fā)表于 2013-08-18 11:14 |只看該作者
這個應(yīng)該會匹配到2013-09-20吧,回復(fù) 2# 范閑丶


   

論壇徽章:
1
15-16賽季CBA聯(lián)賽之北控
日期:2016-08-05 14:22:52
5 [報告]
發(fā)表于 2013-08-18 11:16 |只看該作者
碰上了,回復(fù) 3# 范閑丶


   

論壇徽章:
0
6 [報告]
發(fā)表于 2013-08-18 11:22 |只看該作者
回復(fù) 5# 唐歸來


    恩,我剛剛修改了代碼,你看看三樓的吧,其實剛?cè)龢且灿袀問題不過我檢測出來了,呵呵

論壇徽章:
0
7 [報告]
發(fā)表于 2013-08-19 11:28 |只看該作者
謝謝!回復(fù) 6# 范閑丶


   

論壇徽章:
3
CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
8 [報告]
發(fā)表于 2013-08-19 16:21 |只看該作者
  1. 2013-(?:10-0?[1-3]|0?9-(?:2[89]|30))$
復(fù)制代碼

論壇徽章:
0
9 [報告]
發(fā)表于 2013-08-27 23:18 |只看該作者
回復(fù) 3# 范閑丶

為什么我把時間改成2013/9/28這種格式并把代碼相應(yīng)地方改成“/”,就不行了呢?

while (<DATA>) {
if(/[0-9]{4}-[0-9]{1,2}-[0-9]{2}/){
         $min_date="2013/9/28";
         $max_date="2013/10/3";
         print "$_" if(&com_date($&,$min_date)>=0 and &com_date($&,$max_date)<=0);
}
}
sub com_date
{
         @d0=split /\//,$_[0];
         @d1=split /\//,$_[1];
         for($i=0;$i<3;$i++)
         {
                 next if($d0[$i] eq $d1[$i]);
           return $d0[$i]-$d1[$i];
         }
}
__DATA__
2013-9-25
2013-9-26
2013-9-27
2013-9-28
2013-9-29
2013-9-30
2013-10-01
2013-10-02
2013-10-03
2013-10-04
2013-10-05

論壇徽章:
0
10 [報告]
發(fā)表于 2013-08-28 19:22 |只看該作者
回復(fù) 9# feiying00917
你要把你if 匹配的格式也要更該成 “/”

   
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP