日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Perl中的替换(七)

發布時間:2025/3/17 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Perl中的替换(七) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Perl中使用s///進行替換操作,與m//進行查找操作類似。

???? s/with (\w+)/against $1's team/;????? ##第一個雙斜線,表示被替代的文本。第二個雙斜線,表示將替代為的文本。

?

s///可以有不同的定界符,但是必須保證兩對字符。一對包住模式,一對包住替換字符串。

?????s#^https://#http://#;??????????????????? ##使用#號,分別包住模式和替換字符串。???????

???? s{}();?????????????????????? ???????????????????? ##使用{}包住模式,()包住需要替換的字符串。

?

s///默認對$_進行替換操作。????

???? $_ = "green scaly dinosaur";

???? s/(\w+) (\w+)/$2, $1/;?????? ##匹配兩個單詞后,交換次序。$_= "scaly green dinosaur";

???? s/^/huge,/;??????????????????????? ##$_ = "huge, scaly, green dinosaur";

????

???? s/^\s+//;?????????????????????????? ##將開頭的空白替換為空字符串;

???? s/\s+$//;???????????????????????????##將結尾的空白替換為空字符串;

?

s///也可以使用綁定操作符:

??????$file_name =~ s#^.*/##s;?? ##指定左側為操作的字符串。替換后,字符串直接改變,存儲在左側的標量變量中。

????? my $copy = $original =~ s/\d+ ribs?/10 ribs/r;?? ##使用/r修飾符,不改變原字符串,返回新的字符串給$copy。

?

s///也可以使用模式修飾符,/g表示全局替換,/i表示不區分大小寫,/x表示用空格作為分隔符,/s表示增大"."的范圍。

?

字符串的大小寫轉換。

??????\U將之后的所有字符轉換為大寫。

????? \L將之后的所有字符轉換為小寫。

????? \u將之后的首字符轉換為大寫。

????? \l將之后的首字符轉換為小寫。

????? \E關閉大小寫轉換功能。

????? $_ = "I saw Barney with Fred";

????? s/(fred|barney)/\U$1/gi;??????? ##$_ = "I saw BARNEY and FRED"

????? s/(fred|barney)/\L$1/gi;

????? s/(\w+) with (\w+)/\U$2\E with $1/i??? ##$_ = "I saw?FRED with barney"

????? s/(fred|barney)/\u$1/ig;???????? ##$_ = "I saw FRED with Barney"

?

字符串的一些操作符。字符串分割與合并。

????? my @fields = split /separator/, $string;

????? my @fields = split /:/, "abc:def:g:h";

????? my $result = join $glue, @piece;

????? my $i = join ":",4,6,8,10;

???

m//的返回值,在列表上下文,表示捕獲變量的列表。

????? my $data = "Barney Rubble Fred Flintstone Wilma Flintstone";

??????my %last_name = ($data =~ /(\w+) \s+ (\w+)/g);??? ##由m//直接生成哈希。

?

直接從命令行運行簡短的perl程序。

????? perl -p -i.bak -w -e 's/Random/Rand/g' fred*.dat

其中-p表示自動化生成一段讀再輸出的小程序。不需要帶輸出時,可以選擇-n。

-i.bak對原文件做備份。

-w開啟warning。

-e表示之后是直接執行的程序代碼。

fred*.dat進行ARGV參數表,表示需要處理的文本。

  perl -n -e 'print "\t gcc test_time.c" '  print實現標準輸出

新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的Perl中的替换(七)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。