標籤:perl Regex
1、替換
s/PATTERN/REPLACE/;#返回是否替換成功的布爾值
可以使用捕獲變數,如:s/(\w)/$1/
匹配失敗則不做任何處理
2、定界符
對於沒有左右之分的定界符,重複三次即可,如:s///、s###
對於有左右之分的定界符,需使用兩對,一對包含模式,一對包含替換字串,這兩對可以不一樣,如:s{}{}、s[]{}、s<>[]
3、可選修飾符
/g可進行全域替換,替換所有匹配到的字串,如:s/ / /g
/s:使得 . 匹配所有字元
/i:大小寫無關
4、綁定操作符
$file_name =~ s#^.*##s;#去除所喲Unix風格的路徑
5、轉義操作符
\U:全部轉大寫,或者到 \E 結束
\L:全部轉小寫,或者到 \E 結束
\u:其後的一個字元轉大寫
\l:其後的資格字元轉小寫
可以並用,\u\L 全部轉小寫,首字母大寫
以上操作符可以在雙引號內使用
6、拆分字串:split
@fileds = split /:/,"abs:sdf:fdd";#返回結果清單
兩個分割符連在一起,拆分出空欄位,結尾處的會省略。
/\s+/可以進行空白分割,如:split /\s+/,$some_input;#所有的空白都當作一個空格處理,省略開頭的空欄位
7、串接字串:join
my $x = join ":",4,6,8,10;#結果為$x = "4:6:8:10";
與split結合,先拆分,再用不同的定界符串連。
8、列表上下文中的m//
在列表上下文中使用m//時,如果匹配成功,返回所有捕獲變數的列表,匹配失敗返回空列表:my($first,$second,$third) = /(\s+) (\s+) (\s+)/;
/g 修飾符可以將m//匹配到許多地方,如:
9、非貪婪量詞
預設情況下,/Fred.+barney/會先匹配“Fred”,然後將剩下的全部字串匹配為“.+”,然後“.+”依次吐出一個字元,直到“barney”被匹配,此為貪婪模式。
在+、*、{}、?之後加上“?”,會使其變為非貪婪模式,從少到多匹配;
/m:跨行的模式比對,加上之後會匹配行內的分行符號;
10、一次更新多個檔案
$^I:表示備份檔案的尾碼名,處理之前會先做備份,從備份檔案中讀取,然後再建立與源檔案同名的檔案,寫入新的資訊;
11、用命令列進行線上編輯
-p:自動產生小程式,while迴圈
-i.bak:備份檔案名
-w:開啟警告
-e:告訴程式後邊是代碼
fred*.dat:要處理的檔案