精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Perl grep函數(shù)用法詳解

開發(fā) 架構(gòu)
Perl grep函數(shù)有很多值得學(xué)習(xí)的地方,它用法你是否熟悉,本文向大家簡(jiǎn)單介紹一下,希望本文的介紹能讓你有所收獲。

本文和大家重點(diǎn)學(xué)習(xí)一下Perl grep函數(shù)的用法Perl grep函數(shù)有兩種表達(dá)方式,具體是哪兩種請(qǐng)看本文的詳細(xì)介紹吧。

Perl grep函數(shù)詳解

(一)grep有2種表達(dá)方式:

◆grepBLOCKLIST
◆grepEXPR,LIST

BLOCK表示一個(gè)code塊,通常用{}表示;EXPR表示一個(gè)表達(dá)式,通常是正則表達(dá)式。原文說EXPR可是任何東西,包括一個(gè)或多個(gè)變量,操作符,文字,函數(shù),或子函數(shù)調(diào)用。
LIST是要匹配的列表。

Perl grep函數(shù)對(duì)列表里的每個(gè)元素進(jìn)行BLOCK或EXPR匹配,它遍歷列表,并臨時(shí)設(shè)置元素為$_。在列表上下文里,grep返回匹配命中的所有元素,結(jié)果也是個(gè)列表。在標(biāo)量上下文里,grep返回匹配命中的元素個(gè)數(shù)。

(二)grepvs.loops

openFILE"printgrep/terrorism|nuclear/i,;;

這里打開一個(gè)文件myfile,然后查找包含terrorism或nuclear的行。;返回一個(gè)列表,它包含了文件的完整內(nèi)容。可能你已發(fā)現(xiàn),如果文件很大的話,這種方式很耗費(fèi)內(nèi)存,因?yàn)槲募乃袃?nèi)容都拷貝到內(nèi)存里了。

代替的方式是使用loop(循環(huán))來完成:

  1. while($line=;){  
  2. if($line=~/terrorism|nuclear/i){print$line}  

上述code顯示,loop可以完成grep能做的任何事情。那為什么還要用grep呢?答案是grep更具Perl風(fēng)格,而loop是C風(fēng)格的。
更好的解釋是:(1)grep讓讀者更顯然的知道,你在從列表里選擇某元素;(2)grep比loop簡(jiǎn)潔。
一點(diǎn)建議:如果你是Perl新手,那就規(guī)矩的使用loop比較好;等你熟悉Perl了,就可使用grep這個(gè)有力的工具。

(三)幾個(gè)Perl grep函數(shù)的示例

1.統(tǒng)計(jì)匹配表達(dá)式的列表元素個(gè)數(shù)

$num_apple=grep/^apple$/i,@fruits;

在標(biāo)量上下文里,grep返回匹配中的元素個(gè)數(shù);在列表上下文里,grep返回匹配中的元素的一個(gè)列表。

所以,上述code返回apple單詞在@fruits數(shù)組中存在的個(gè)數(shù)。因?yàn)?num_apple是個(gè)標(biāo)量,它強(qiáng)迫grep結(jié)果位于標(biāo)量上下文里。

2.從列表里抽取***元素

  1. @unique=grep{++$count{$_}<2}  
  2. qw(abacddefgfhh);  
  3. print"@uniquen"; 

上述code運(yùn)行后會(huì)返回:abcdefgh
即qw(abacddefgfhh)這個(gè)列表里的***元素被返回了。為什么會(huì)這樣呀?讓我們看看:

%count是個(gè)hash結(jié)構(gòu),它的key是遍歷qw()列表時(shí),逐個(gè)抽取的列表元素。++$count{$_}表示$_對(duì)應(yīng)的hash值自增。在這個(gè)比較上下文里,++$count{$_}與$count{$_}++的意義是不一樣的哦,前者表示在比較之前,就將自身值自增1;后者表示在比較之后,才將自身值自增1。所以,++$count{$_}<2表示將$count{$_}加1,然后與2進(jìn)行比較。$count{$_}值默認(rèn)是undef或0。所以當(dāng)某個(gè)元素a***次被當(dāng)作hash的關(guān)鍵字時(shí),它自增后對(duì)應(yīng)的hash值就是1,當(dāng)它第二次當(dāng)作hash關(guān)鍵字時(shí),對(duì)應(yīng)的hash值就變成2了。變成2后,就不滿足比較條件了,所以a不會(huì)第2次出現(xiàn)。

所以上述code就能從列表里***1次的抽取元素了。

◆抽取列表里精確出現(xiàn)2次的元素

  1. @crops=qw(wheatcornbarleyricecornsoybeanhay  
  2. alfalfaricehaybeetscornhay);  
  3. @duplicates=grep{$count{$_}==2}  
  4. grep{++$count{$_}>;1}@crops;  
  5. print"@duplicatesn"; 

運(yùn)行結(jié)果是:rice

這里grep了2次哦,順序是從右至左。首先grep{++$count{$_}>;1}@crops;返回一個(gè)列表,列表的結(jié)果是@crops里出現(xiàn)次數(shù)大于1的元素。
然后再對(duì)產(chǎn)生的臨時(shí)列表進(jìn)行g(shù)rep{$count{$_}==2}計(jì)算,這里的意思你也該明白了,就是臨時(shí)列表里,元素出現(xiàn)次數(shù)等于2的被返回。

所以上述code就返回rice了,rice出現(xiàn)次數(shù)大于1,并且精確等于2,明白了吧?:-)

3.在當(dāng)前目錄里列出文本文件

  1. @files=grep{-fand-T}glob'*.*';  
  2. print"@filesn"; 

這個(gè)就很容易理解哦。glob返回一個(gè)列表,它的內(nèi)容是當(dāng)前目錄里的任何文件,除了以'.'開頭的。{}是個(gè)code塊,它包含了匹配它后面的列表的條件。這只是grep的另一種用法,其實(shí)與grepEXPR,LIST這種用法差不多了。-fand-T匹配列表里的元素,首先它必須是個(gè)普通文件,接著它必須是個(gè)文本文件。據(jù)說這樣寫效率高點(diǎn)哦,因?yàn)?T開銷更大,所以在判斷-T前,先判斷-f了。

4.選擇數(shù)組元素并消除重復(fù)

  1. @array=qw(Tobeornottobethatisthequestion);  
  2. @found_words=  
  3. grep{$_=~/b|o/iand++$counts{$_}<2;}@array;  
  4. print"@found_wordsn"; 

運(yùn)行結(jié)果是:Tobeornottoquestion

{}里的意思就是,對(duì)@array里的每個(gè)元素,先匹配它是否包含b或o字符(不分大小寫),然后每個(gè)元素出現(xiàn)的次數(shù),必須小于2(也就是1次啦)。
grep返回一個(gè)列表,包含了@array里滿足上述2個(gè)條件的元素。


5.從二維數(shù)組里選擇元素,并且x

  1. #Anarrayofreferencestoanonymousarrays  
  2. @data_points=([5,12],[20,-3],  
  3. [2,2],[13,20]);  
  4. @y_gt_x=grep{$_->;[0]<$_->;[1]}@data_points;  
  5. foreach$xy(@y_gt_x){print"$xy->;[0],$xy->;[1]n"} 

運(yùn)行結(jié)果是:
5,12
13,20

這里,你應(yīng)該理解匿名數(shù)組哦,[]是個(gè)匿名數(shù)組,它實(shí)際上是個(gè)數(shù)組的引用(類似于C里面的指針)。
@data_points的元素就是匿名數(shù)組。例如:

foreach(@data_points){
print$_->;[0];}

這樣訪問到匿名數(shù)組里的第1個(gè)元素,把0替換成1就是第2個(gè)元素了。

所以{$_->;[0]<$_->;[1]}就很明白了哦,它表示每個(gè)匿名數(shù)組的***個(gè)元素的值,小于第二個(gè)元素的值。而grep{$_->;[0]<$_->;[1]}@data_points;就會(huì)返回滿足上述條件的匿名數(shù)組列表。所以,就得到你要的結(jié)果啦!

6.簡(jiǎn)單數(shù)據(jù)庫(kù)查詢

Perl grep函數(shù)的{}復(fù)雜程度如何,取決于program可用虛擬內(nèi)存的數(shù)量。如下是個(gè)復(fù)雜的{}示例,它模擬了一個(gè)數(shù)據(jù)庫(kù)查詢:

 

  1. #@databaseisarrayofreferencestoanonymoushashes  
  2. @database=(  
  3. {name=>;"WildGinger",  
  4. city=>;"Seattle",  
  5. cuisine=>;"AsianThaiChineseKoreanJapanese",  
  6. expense=>;4,  
  7. music=>;"",  
  8. meals=>;"lunchdinner",  
  9. view=>;"",  
  10. smoking=>;"",  
  11. parking=>;"validated",  
  12. rating=>;4,  
  13. payment=>;"MCVISAAMEX",  
  14. },  
  15. #{...},etc.  
  16. );  
  17.  
  18. subfindRestaurants{  
  19. my($database,$query)=@_;  
  20. returngrep{  
  21. $query->;{city}?  
  22. lc($query->;{city})eqlc($_->;{city}):1  
  23. and$query->;{cuisine}?  
  24. $_->;{cuisine}=~/$query->;{cuisine}/i:1  
  25. and$query->;{min_expense}?  
  26. $_->;{expense}>;=$query->;{min_expense}:1  
  27. and$query->;{max_expense}?  
  28. $_->;{expense}<=$query->;{max_expense}:1  
  29. and$query->;{music}?$_->;{music}:1  
  30. and$query->;{music_type}?  
  31. $_->;{music}=~/$query->;{music_type}/i:1  
  32. and$query->;{meals}?  
  33. $_->;{meals}=~/$query->;{meals}/i:1  
  34. and$query->;{view}?$_->;{view}:1  
  35. and$query->;{smoking}?$_->;{smoking}:1  
  36. and$query->;{parking}?$_->;{parking}:1  
  37. and$query->;{min_rating}?  
  38. $_->;{rating}>;=$query->;{min_rating}:1  
  39. and$query->;{max_rating}?  
  40. $_->;{rating}<=$query->;{max_rating}:1  
  41. and$query->;{payment}?  
  42. $_->;{payment}=~/$query->;{payment}/i:1  
  43. }@$database;  
  44. }  
  45.  
  46. %query=(city=>;'Seattle',cuisine=>;'Asian|Thai');  
  47. @restaurants=findRestaurants(@database,%query);  
  48. print"$restaurants[0]->;{name}n";  
  49.  

 運(yùn)行結(jié)果是:WildGinger

【編輯推薦】

  1. Eclipse平臺(tái)中Perl腳本開發(fā)
  2. Perl學(xué)習(xí)筆記----Perl命令行
  3. Perl數(shù)組和引用使用指導(dǎo)
  4. Perl基礎(chǔ) 解析Perl標(biāo)量和數(shù)組概念
  5. Perl模式匹配中的特殊字符用法指南

 

責(zé)任編輯:佚名 來源: csdn.net
相關(guān)推薦

2010-07-19 10:01:57

Perl函數(shù)

2010-07-23 15:59:33

Perl encode

2010-07-16 16:40:48

Perl引用

2010-07-16 09:50:23

Perl控制結(jié)構(gòu)

2010-07-19 15:01:26

Perl數(shù)學(xué)函數(shù)

2010-07-19 14:13:41

Perl函數(shù)

2010-07-16 16:56:01

Perl構(gòu)造函數(shù)

2010-07-23 14:04:43

Perl grep函數(shù)

2010-07-19 14:20:57

Perl函數(shù)

2010-07-16 10:20:46

Perl關(guān)聯(lián)數(shù)組

2010-07-21 09:57:46

Perl文件

2010-07-13 09:14:21

Perl時(shí)間處理函數(shù)

2010-07-21 10:10:50

Perl split函

2010-07-19 14:37:01

Perl進(jìn)程啟動(dòng)函數(shù)

2010-07-26 10:09:01

Perl split函

2010-07-16 17:04:38

Perl方法

2010-07-21 10:32:05

Perl函數(shù)返回值

2010-07-19 15:25:39

Perl標(biāo)量轉(zhuǎn)換函數(shù)

2010-07-14 16:21:48

Perl

2010-07-15 13:50:16

Perl目錄操作函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

av毛片久久久久**hd| 国产91精品入| 91老师国产黑色丝袜在线| 日韩av电影国产| 欧美丰满熟妇bbb久久久| 伦理在线一区| 91天堂素人约啪| 国产精品第3页| 国产在线一区视频| 成人久久一区| 欧美va日韩va| 美女网站色免费| 亚洲性图自拍| 国产精品天天看| 超碰97在线播放| 综合久久中文字幕| 亚洲人人精品| 久久久精品一区| 国产精品毛片一区二区| 中文无码日韩欧| 欧美日韩亚州综合| www.日本少妇| av香蕉成人| 欧美国产欧美亚州国产日韩mv天天看完整| 18成人在线| 青青草av在线播放| 日本久久一二三四| 精品亚洲aⅴ在线观看| 亚洲成人福利在线| 欧美片第一页| 亚洲欧美日韩精品久久久久| 欧美日韩亚洲在线| 手机看片1024国产| 国产盗摄精品一区二区三区在线| 国产精品第七十二页| 久久久久亚洲AV| 天天超碰亚洲| 三级精品视频久久久久| 性欧美成人播放77777| 一区二区免费| 日韩欧美国产高清91| 国产精品国产对白熟妇| 午夜伦理在线视频| 亚洲日本乱码在线观看| 一区二区三区在线视频111| 日本aaa在线观看| 成人黄色网址在线观看| 国产免费一区二区三区在线观看 | 久久三级视频| 九九综合九九综合| 国产真实乱在线更新| 136导航精品福利| 欧美一区二区三级| 一级日本黄色片| 123成人网| 欧美日韩一级视频| 中文字幕第17页| 福利一区在线| 在线观看日韩毛片| 深夜黄色小视频| 久久亚洲人体| 欧美艳星brazzers| 性猛交ⅹ×××乱大交| 成人全视频免费观看在线看| 一本色道a无线码一区v| 成年网站在线免费观看| 日韩av首页| 欧美在线观看18| 国产九九热视频| 国产精品一区二区精品| 91精品麻豆日日躁夜夜躁| 91丝袜超薄交口足| 日韩精品久久久久久久软件91| 日韩一区二区不卡| bl动漫在线观看| 最新亚洲精品| 久久精品成人动漫| 久久久91视频| 亚洲综合激情| 国产精品爽爽爽爽爽爽在线观看| 亚洲一区在线观| 国产成人自拍网| 精品在线不卡| 高清性色生活片在线观看| 最好看的中文字幕久久| 欧美一级爱爱视频| 不卡av影片| 色老汉一区二区三区| 亚洲一区二区三区激情| 国产精品成人观看视频免费| 欧美亚洲精品在线观看| 91理论电影在线观看| 亚洲精品日韩在线观看| 欧美人动性xxxxz0oz| 精品毛片三在线观看| 8x8x最新地址| 精品视频一二| 亚洲美女av电影| av最新在线观看| 国产欧美日韩一区二区三区在线| 国产精品7m视频| 国产成人三级在线播放| 91在线视频播放| av电影一区二区三区| 中文不卡1区2区3区| 777亚洲妇女| 年下总裁被打光屁股sp | 女同一区二区| 成人在线观看亚洲| 日本精品一区二区三区高清 | 精品无码一区二区三区在线| 成人精品动漫| 日韩电视剧免费观看网站| 五月综合色婷婷| 国产精品外国| 91久久精品一区二区别 | 欧美成年人在线观看| 高清乱码免费看污| 成人免费视频免费观看| 中文字幕一区二区三区四区五区人| av在线私库| 色域天天综合网| 精品国产一区在线| 欧美激情亚洲| 国产精品麻豆va在线播放| 无套内谢的新婚少妇国语播放| 国产精品视频九色porn| 日本久久电影网| 一级黄色片国产| 欧美综合另类| 国产成人激情小视频| 刘玥91精选国产在线观看| 亚洲女厕所小便bbb| 久久久久狠狠高潮亚洲精品| 欧美理论电影在线精品| 久久久久久久久久久91| 一二三四区在线| 欧美激情一区二区三区蜜桃视频 | 久久久精品日韩| 精品国产一区二区三区免费| 欧美videossex| 日韩一区二区三区电影| 国产视频123区| 免费av网站大全久久| 日韩av大全| 超碰aⅴ人人做人人爽欧美| 日韩高清a**址| 日韩成人高清视频| 成人免费av网站| 国产v片免费观看| 欧美挤奶吃奶水xxxxx| 97在线观看免费| 三级在线观看| 91福利视频久久久久| 日本欧美一区二区三区不卡视频| 免费视频一区| 天天综合色天天综合色hd| 国产极品一区| 欧美精品午夜视频| 国产影视一区二区| 亚洲日本成人在线观看| 69久久久久久| 午夜国产欧美理论在线播放 | 欧美第一淫aaasss性| 国产精品久久久久久免费| 亚洲日本在线观看| 一级黄色电影片| 精品二区视频| 欧美日本韩国在线| 韩国成人在线| 久久人人爽人人爽爽久久 | 亚洲片国产一区一级在线观看| 日韩电影在线观看一区二区| 国产精品色噜噜| 亚洲男人天堂色| 亚洲乱码电影| 精品亚洲一区二区三区四区五区高| 青青青青在线视频| 国产精品99| 欧美美女18p| 天堂а√在线8种子蜜桃视频 | 97久久精品国产| 玖玖综合伊人| 制服丝袜成人动漫| 久久夜色精品亚洲| 中国色在线观看另类| 日本人69视频| 亚洲成人直播| 日韩av电影免费播放| 久久伊人久久| 日韩免费观看高清| 中文字幕伦理免费在线视频| 精品亚洲va在线va天堂资源站| 中文字幕日韩经典| 性做久久久久久免费观看| 蜜桃久久精品成人无码av| 老司机免费视频一区二区三区| 国产二区视频在线| 色综合久久一区二区三区| 国产欧美中文字幕| 绿色成人影院| 精品少妇一区二区30p| 免费动漫网站在线观看| 精品少妇一区二区三区在线视频| 无码人妻丰满熟妇区五十路| 亚洲一区二区在线观看视频| 男人的天堂av网| 99综合电影在线视频| 天天看片天天操| 亚洲狠狠婷婷| 中文字幕一区二区三区有限公司 | 亚洲欧美日产图| 久久夜色电影| 91久久久久久久一区二区| 肉色欧美久久久久久久免费看| 欧美肥臀大乳一区二区免费视频| 国产原创av在线| 日韩av中文字幕在线免费观看| 中国精品一区二区| 一本色道久久加勒比精品| 日韩精品一区二区三区国语自制| 亚洲日本在线看| 国内毛片毛片毛片毛片毛片| 国产偷国产偷亚洲高清人白洁| 日本黄色录像片| 国产91精品一区二区| 一级黄色片国产| 精品亚洲国产成人av制服丝袜 | 一本一道久久久a久久久精品91| 欧美挤奶吃奶水xxxxx| 国产九色精品| 亚洲一区二区电影| 91美女高潮出水| 91成人小视频| 成人有码视频在线播放| 国产成人午夜性a一级毛片| 国产va免费精品高清在线观看| 国产传媒在线| 国内精品久久久久久| 亚洲国产精品精华素| 欧美男插女视频| 高清电影在线观看免费| 欧美国产视频日韩| 91高清在线观看视频| 国内精品伊人久久久久影院对白| 欧美日韩一区二| 欧美午夜网站| 99re资源| 日韩中文字幕无砖| 国产精品久久久久99| 成人免费影院| 国产成人综合精品| jizz亚洲女人高潮大叫| 国产精品视频网| 亚洲伊人伊成久久人综合网| 成人日韩av在线| 榴莲视频成人app| 成人在线视频电影| 欧美色图五月天| 欧美lavv| 日韩国产欧美一区二区| 中文字幕超清在线免费观看| 欧美久久99| 一女被多男玩喷潮视频| 久久精品卡一| 日韩精品一区二区三区色欲av| 免费在线亚洲| 五月天激情视频在线观看| 国产伦精品一区二区三区免费迷| 又黄又色的网站| 久久精品视频网| 国产67194| 亚洲国产精品综合小说图片区| 六月丁香在线视频| 欧美系列日韩一区| 国产免费一区二区三区免费视频| 精品剧情在线观看| 天堂av网在线| 亚洲网在线观看| 成人日批视频| 51久久精品夜色国产麻豆| 黄色欧美视频| 国产一区二区在线网站| 精品久久久亚洲| 亚洲电影网站| 国内精品久久久久久久影视蜜臀| 激情婷婷综合网| 国产一区二区三区免费看| 超碰男人的天堂| 中文字幕亚洲在| 特级西西444www大精品视频免费看| 欧美伊人久久大香线蕉综合69| 亚洲精选一区二区三区| 国产午夜精品一区二区三区| 污污影院在线观看| 国产精品福利网站| 超碰一区二区三区| 亚洲三级免费看| 免费一级片在线观看| 一本大道久久a久久精品综合| 国产孕妇孕交大片孕| 精品国产成人在线影院| 一级毛片视频在线观看| 777午夜精品福利在线观看| av在线精品| 日本一区二区精品| 在线不卡视频| 爱豆国产剧免费观看大全剧苏畅 | 超碰在线caoporn| 97精品一区二区三区| 日韩成人在线观看视频| 亚洲免费视频一区| 久久综合中文| 亚洲av成人无码一二三在线观看| 中文字幕综合网| 亚洲中文无码av在线| 日韩电影大片中文字幕| 三级资源在线| 91色视频在线观看| 久久国产精品色av免费看| 欧美少妇一级片| 免费不卡在线观看| 成人激情五月天| 亚洲超丰满肉感bbw| www.久久精品.com| 久久久91精品| 亚州精品国产| 亚洲欧美国产精品桃花| 日韩电影在线观看网站| 30一40一50老女人毛片| 精品久久久久久| 人妻视频一区二区三区| 九九热视频这里只有精品| 2020国产精品小视频| 中文字幕一区二区三区乱码 | 国产chinese精品一区二区| 偷拍欧美精品| 色婷婷一区二区三区在线观看| 国产精品三级电影| 中文字幕永久在线视频| 在线观看国产精品淫| 亚洲播播91| 四虎影视永久免费在线观看一区二区三区| 亚洲欧美日韩一区在线观看| 日韩av无码一区二区三区不卡| 亚洲一区二区三区视频在线播放| 午夜精品久久久久久久99热黄桃 | 欧美一级二级三级九九九| 欧美一区不卡| xxxx国产视频| 亚洲成人中文在线| 国产精品久久久久久久免费看 | 日韩中文字幕av在线| 久久不射2019中文字幕| 日韩中文字幕有码| 欧美四级电影网| 免费网站看v片在线a| 成人精品视频在线| 亚洲欧美亚洲| 美女久久久久久久久| 五月天欧美精品| 国产黄色av网站| 久久乐国产精品| 制服丝袜日韩| 国产精品嫩草影院8vv8| 亚洲人午夜精品天堂一二香蕉| 国产又黄又大又爽| 欧美国产第一页| 西野翔中文久久精品字幕| 日韩在线综合网| 亚洲国产经典视频| 久热这里有精品| 欧美一区二区日韩| 中文字幕成在线观看| 亚洲精品第一区二区三区| 国产伦精品一区二区三区免费 | 欧美精品在线一区二区| 性直播体位视频在线观看| 国产一区二区黄色| 日本成人在线视频网站| 国产女人被狂躁到高潮小说| 亚洲电影av在线| 免费高清视频在线一区| 亚洲aⅴ天堂av在线电影软件| 国产精品亚洲成人| 天干夜夜爽爽日日日日| 久久精品一本久久99精品| 国产伦理久久久久久妇女| 国产视频手机在线播放| 亚洲午夜久久久久久久久电影网| 午夜18视频在线观看| 国产精品免费在线免费| 一区二区自拍| 任我爽在线视频| 日韩av在线免费播放| 高清久久精品| 大片在线观看网站免费收看| 国产亚洲一区二区在线观看| jlzzjlzzjlzz亚洲人| 国产成人精品网站|