1 表示式修飾符if、unless、while、untile、foreach
2 data檔案控制代碼:__data__標誌著指令碼的邏輯結束,並開啟data檔案控制代碼用於讀取。
3 m運算子:如果包圍正規表示式的定界符是斜槓,m運算子是可選的;如果忙亂變了定界符,則是要求的。
格式:/regular expression/ or m#regular expression# or m(regular expression)
匹配修飾符:i-大小寫無關 g-全域性匹配 x-允許注釋與空白 o-只編譯模式一次
s-嵌入新行時,將字串作為單行處理 m-將字串作為多行處理
4 給特殊標量$&賦值在上一次成功搜尋中匹配的字串。$'(備份引號)儲存在匹配模式之前找到的內容,而$'(直接引號)儲存模式匹配之後找到的內容。
5 s運算子和替換,格式:s/old/new/ or s(odl)/new/ or ...
替換修飾符:以上提到的+e將夫換端作為表示式求值
6 格式繫結運算子:
前面在預設模式空間$_變數上的模式搜尋是隱式完成的,如果不將字串儲存在變數$_中,而且需要對字串過行匹配或替換,就要使用模式繫結運算子=~或!~。它們還在tr函式中用於字串翻譯。
7 用於單字元的元字元:
.-除新行外的任何字元 [a-z0-9]任何單字元
[^a-z0-9]不在集合中的任何單字元 /d-乙個數字(大寫為非數字)
/w-數字(字)字元(大寫為非數字字母(非字)字元
注意:
s修飾符:點元字元和新行
脫字元^
posix字元類:用於確保跨平台可移植的工業標準(求反字元,只要在字串前加^)
[:alnum:]字母數字字元 [:alpha:]字母字元
[:ascii:]0-127數值字元 [:cntrl:]控制字元
[:digit:]數字 [:graph:]字母數字標點以外的非空字元
[:lower:]小寫 [:print:]與[:graph:]同,但有空格
[:punct:]標點 [:space:]所有的空白字元
[:upper:]大寫 [:word:]字母或下劃線
[:xdigit:]十六進製制
8 白空元字元:(大寫為非)
/s-白空字元 /n新行 /r回車
/t製表位 /h進紙
9 關閉貪婪性的元字元。通過在貪婪限定符之後放置問號,就關閉了貪婪性,搜尋在第乙個匹配後結束,而不是到最後乙個。
10 錨點:
^行或字串的開頭 $行或字串的末尾
/a只匹配字串的開頭 /z匹配字串或行的末尾
/z只匹配字串的末尾 /g匹配前面的m//g離開之處
/b匹配邊界(大寫為非邊界)
m修飾符用於控制$和^錨元字元的行為。含有新行的字串作為多行對待。
11 記憶或捕獲:如果正規表示式包含在括弧中,則建立子模式。子模式儲存在特殊編號的標量變數中,從$1開始。這些變數以後用於程式並保持到發生其化成功的模式匹配,些是將其清除。即使想要控制貪婪元字元或前一例子中展示的交替行為,儲存子模式也具有***.可以使用?:元字元取消子模式的捕獲。
例:
$fruit=~/(.*)/s(.*)/s(.*)/;
print "$1/n";
print "$2/n";
print "$3/n";
print "-"x39,"/n";
$fruit=~/(.*?)/(.*?)/s(.*?)/;
print "$1/n";
print "$2/n";
print "$3/n";
(output)
peaches
plums
-----------------------
pears
peaches
12 前後查詢元字元:
/pattern(?=pattern)/正向前查詢 /pattern(?!pattern)/負向前查詢
(?<=pattern)/pattern/正向後查詢 (?13 tr或y函式:以一種一對一的對應,將搜尋字串中的字元轉換成替換字串中的字元。返回其替換的字元數。d選項刪除搜尋字串,c選項補充搜尋字串,s選項稱為擠壓選項。
14 統一字元編碼unicode:是解決這個問題的一種方式,通過建立新的字符集,稱為utf8或uft16,其中的字母不限制為一位元組。(先用use8包含)(如/p的p大寫,則意義相反)
/pascii字元 /p控制字元
/p /p字母數字或標點字元 /p
/p字母數字或標點字元或空格 /p標點 /p白空
/p大寫字母 /p字母數字字元或下劃線 /p十六進製制
推薦投訴
Perl 學習筆記
在linux上,如果遇到這樣的提示 can t locate module datetime.pm in inc 意味著perl模組沒有安裝全,可以用cpan來安裝缺失的模組 perl mcpan e install module build 如果系統上很多模組都已經很舊了,用這個命令來自動更新 u...
perl 學習筆記
perl 語法 一 資料結構 標量 陣列 雜湊 0 八進位制 0x 十六進製制 注釋 二 字串 1 字元鏈結 2 單引號內字元不會被轉義 3 v字元 乙個以 v 開頭,後面跟著乙個或多個用句點分隔的整數,會被當作乙個字串文字。foo v102.111.111 4 here 文件 print 5 特殊...
Perl學習筆記
標量 陣列陣列是標量資料的有序列表,是多個標量資料的一種集合。可以包含任意多個元素,從0到全部佔滿記憶體。以 符號作為標識。1,2,3 包含1,2,3三個數字的列表 1,2,3 三個數字,最後逗號被省略 test 4.5 兩個值 空列表 零個元素 1 5 代表 1,2,3,4,5 5 1 空列表,從...