Perl正則表達式的八大原則
本文和大家重點討論一下Perl正則表達式的概念,Perl正則表達式是初學Perl的難點所在,不過只要一旦掌握其語法,你就可以擁有幾乎無限的模式匹配能力,而且Perl編程的大部分工作都是掌握常規表達式。
Perl正則表達式的八大原則
如果在Unix中曾經使用過sed、awk、grep這些命令的話,相信對于Perl語言中的Perl正則表達式(RegularExpression)不會感到陌生。Perl語言由于有這個功能,所以對字符串的處理能力非常強。在Perl語言的程序中,經常可以看到Perl正則表達式的運用,在CGI程序設計中也不例外。
Perl正則表達式是初學Perl的難點所在,不過只要一旦掌握其語法,你就可以擁有幾乎無限的模式匹配能力,而且Perl編程的大部分工作都是掌握常規表達式。下面給大家介紹幾條Perl正則表達式使用過程中的8大原則。
Perl正則表達式在對付數據的戰斗中可形成龐大的聯盟——這常常是一場戰爭。我們要記住下面八條原則:
◆原則1:Perl正則表達式有三種不同形式(匹配(m//),替換(s///eg)和轉換(tr///))。
◆原則2:Perl正則表達式僅對標量進行匹配($scalar=~m/a/;可以工作;@array=~m/a/將把@array作為標量對待,因此可能不會成功)。
◆原則3:Perl正則表達式匹配一個給定模式的最早的可能匹配。缺省時,僅匹配或替換Perl正則表達式一次($a='stringstring2';$a=~s/string//;導致$a='string2')。
◆原則4:Perl正則表達式能夠處理雙引號所能處理的任意和全部字符($a=~m/$varb/在匹配前把varb擴展為變量;如果$varb='a'$a='as',$a=~s/$varb//;等價于$a=~s/a//;,執行結果使$a="s")。
◆原則5:Perl正則表達式在求值過程中產生兩種情況:結果狀態和反向引用:$a=~m/pattern/表示$a中是否有子串pattern出現,$a=~s/(word1)(word2)/$2$1/則“調換”這兩個單詞。
◆原則6:Perl正則表達式的核心能力在于通配符和多重匹配運算符以及它們如何操作。$a=~m/\w+/匹配一個或多個單詞字符;$a=~m/\d/"匹配零個或多個數字。
◆原則7:如果欲匹配不止一個字符集合,Perl使用"|"來增加靈活性。如果輸入m/(cat|dog)/則相當于“匹配字符串cat或者dog。
◆原則8:Perl用(?..)語法給Perl正則表達式提供擴展功能。(這一點請同學們課后看相關資料)
想要學習所有這些原則?我建議大家先從簡單的開始,并且不斷的嘗試和實驗。實際上如果學會了$a=~m/ERROR/是在$a中查找子串ERROR,那么你就已經比在C這樣的低層語言中得到了更大的處理能力。
【編輯推薦】