2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩21頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Perl 語(yǔ)言,,1,第九章 用正則表達(dá)式處理文本,,用s///替換,1,,相關(guān)函數(shù),2,,列表上下文中的m//,3,2,※,△,,更強(qiáng)大的正則表達(dá)式,4,9.1 用s///進(jìn)行替換,m// 等同于“查詢(search)”功能,s ///類似于“查詢并替換”,3,$_ =“He’s out bowling with Barney tonight.”;s/Barney/Fred/; #Ba

2、rney 被Fred 替換掉print “$_\n”;s/with (\w+)/agaist $1’s team/;print “$_\n”; #為“He’s out bowling against Fred’s team tonight”,9.1 用s///進(jìn)行替換,4,$_ =“green scaly dinosaur”;s/(\w+) (\w+)/$2, $1/; #現(xiàn)在為“scaly

3、, green dinosaur”;s/^/huge, /; #現(xiàn)在為“huge, scaly, green dinosaur”s/,.*een//; #空替換,現(xiàn)在為“huge dinosaur”s/green/red/; #匹配失敗,仍然為“huge dinosaur”s/\w+$/($`!)$&

4、/; #現(xiàn)在為“huge (huge !)dinosaur”s//\s+(!\W+)/$1 /; #現(xiàn)在為“huge (huge!) dinosaur”s/huge/gigantic/; #現(xiàn)在為“gigantic (huge!) dinosaur”if (s/huge/gigantic/){ print “It matched!\n”}

5、 #s///返回布爾值,用/g進(jìn)行全局替換,s///值進(jìn)行一次替換,無(wú)論是否還有地方還能匹配上。修飾/g 要求s///將所有匹配上的部分都進(jìn)行替換:,5,$_ = “home, sweet home!”;s/home/cave/g;print “$_\n”; # “cave, sweet cave!”,應(yīng)用:s///g縮減字符串中的空白。

6、,$_ =“Input data\t may have extra whitespace.”;s/\s+/ /g; #現(xiàn)在是“Input data may have extra whitespace.”s/^\s+//; #將開頭的空白去掉s/\s+$//; #將結(jié)尾的空白去掉s/^\s+|\s+$//g; #將開頭,結(jié)

7、尾的空白去掉,不同的定界符,m//和qw//,可以改變使用其他定界符s///的分隔符也可以。但使用3個(gè)分隔符,有些不同。,6,s#^https://#http://#;s{fred}{barney};s[fred](barney);s#barney#;,可用替換修飾符,除了/g 修飾符外,替換操作中還可使用/i, /x, 和/s,修飾前部分的模式這些在普通的模式匹配中已經(jīng)出現(xiàn)過(guò)的修飾符。無(wú)順序。,7,s#wilma#Wilma

8、#gi; #所有WilmA(不分大小寫),替換Wilmas{_ _END_ _.*}{ }s; #將__END__ 標(biāo)記及其后面內(nèi)容去掉,無(wú)損替換,如果需要同時(shí)保留原始字符串和替換后的字符串,傳統(tǒng)的辦法是先復(fù)制一份,再替換默認(rèn)狀態(tài)下,s///返回的成功替換的次數(shù),8,my $original = ‘Fred ate 1 rib’;my $copy = $original;$copy =~ s/\d+ ribs?/

9、10 ribs/;(my $copy = $original) =~ s/\d+ ribs?/10 ribs/; #先賦值,后替換my $copy = $original =~ s/\d+ ribs?/10 ribs/r; #先替換,后賦值,大小寫轉(zhuǎn)換,修飾符\U 要求接下來(lái)的字符均是大寫:修飾符\L 要求接下來(lái)的字符均是小寫:,9,$_ =“I saw Barney with Fred.”;s/(fred|barn

10、ey)/\U$1/gi; #$_現(xiàn)在是“I saw BARNEY with FRED.”s/(fred)|barney/\L$1/gi; #$_現(xiàn)在是“I saw barney with fred.”,s/(\w+) with (\w+)/\U$2\E with $1/I; #$_ 現(xiàn)在是“I saw FRED with barney.”,大小寫轉(zhuǎn)換,修飾符\u 要求接下來(lái)的一個(gè)字符大寫:修飾符\l 要求接下來(lái)的

11、一個(gè)字符小寫:,10,s/ (fred|barney)/\u$1/ig; #$_現(xiàn)在是“I saw FRED with Barney.”s/(fred|barney)/\u\L$1/ig; #$_現(xiàn)在為“I saw Fred with Barney.”,print “Hello, \L\u$name\E, would you like to play a game?\n” #也可以在雙引號(hào)中使用此修飾符,9.2 相關(guān)函數(shù)

12、,split操作符:根據(jù)模式拆分字符串my @fields = split /separator/, $string;根據(jù)模式掃描字符串,按照模式匹配分隔字符串,如果匹配成功,該處就是當(dāng)前字段的結(jié)尾,下一個(gè)字段的開頭。任何匹配的內(nèi)容都不會(huì)出現(xiàn)在返回值中。,11,@fields = split /:/, “abc:def:g:h”; #返回(“abc”, “def”, “g”, “h”)@fields = split /:/

13、, “abc:def::g:h”; #得到(“abc”, “def”, “”, “g”, “h”),9.2 相關(guān)函數(shù),如果有兩個(gè)分隔符是連在一起的,則可能得到空的元素開頭的空元素會(huì)被返回,但結(jié)尾的空元素被丟棄,12,@fields = split /:/, “:::a:b:c:::”; #得到(“”, “”, “”, “a”, “b”, “c”);my $some_input = “This is a \t

14、 test.\n”;my @args = split /\s+/, $some_input; #(“This”, “is”, “a”, “test.”),9.2 相關(guān)函數(shù),默認(rèn)時(shí),split 對(duì)$_操作,模式為空白:,13,my @fields = split; #同split /\s+/, $_;my @fields = split

15、‘’, ‘a(chǎn)bcdef’; #將字符串分解為單個(gè)字符;,9.2 相關(guān)函數(shù),join函數(shù)不使用模式,與split 相反的操作:將這些分割的部分組合成一個(gè)整體。 join 函數(shù)的第一個(gè)參數(shù)是‘膠水’,它可以是任意字符串。剩下的參數(shù)是要被粘合的部分。join 將粘合元素添加在這些部分之間,并返回其結(jié)果:,14,my $x = join “:”, 4, 6, 8, 10, 12;

16、 #$x 為“4:6:8:10:12”,9.2 相關(guān)函數(shù),被粘合的參數(shù)至少要有兩個(gè)元素,否則膠水無(wú)法添加,15,my $y = join “foo”, “bar”; #得到“bar”my @empty; #空數(shù)組my $empty = join “baz”, @empty; #沒(méi)

17、有元素,因此為空串my $x = join “:”, 4, 6, 8, 10, 12;my @values = split /:/, $x; #@values 為(4, 6, 8, 10, 12)my $z =join “-”, @values; #$z 為“4-6-8-10-12”,9.3 列表上下文中的m//,列表上下文中,模式返回的捕

18、獲組得到的列表,16,$_ =“Hello there, neighbor!”;my($first, $second, $third) =/(\S+) (\S+), (\S+)/;print “$second is my $third\n”;,9.3 列表上下文中的m//,/g修飾符,可以使用到s///, 也可以修飾m//,意為匹配到字符串中的對(duì)個(gè)地方。,17,my $data = “Barney Rubble Fred Flin

19、tstoneWilma Flintstone”;my %last_name = ($data =~ / (\w+)\S+(\w+)/g);,9.4更強(qiáng)大的正則表達(dá)式,量詞:*, + ,? {3,5}---貪婪量詞Perl默認(rèn)在保證整體匹配的前提下,會(huì)盡量匹配長(zhǎng)字符串,18,fred and barney went bowling last night用/fred.+barney/進(jìn)行匹配-----大量的回溯動(dòng)作,直到匹配成功,非

20、貪婪量詞----*?, +? ,?? {3,5}?Perl默認(rèn)會(huì)盡量匹配短字符串,fred and barney went bowling last night用/fred.+barney/進(jìn)行匹配-----大量的回溯動(dòng)作,直到匹配成功,9.4更強(qiáng)大的正則表達(dá)式,正則表達(dá)式的速度依賴于具體的數(shù)據(jù)。貪婪量詞與非貪婪量詞的差別,19,I’am talking about the cartoon with Fred and Wilma!

21、s#(.*)#$1#g;I thought you said Fred and Velma, not Wilma$#(.*?)#$1#g;,跨行的模式匹配-替換,在多行字符串中,也可以分別針對(duì)每一行進(jìn)行替換。/m,20,$filename = "ex9.txt";if (!open FILE, $filename){ die "Can't open '$filename&#

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論