第乙個元字元是圓點(.)。在正規表示式中,圓點用於匹配除了換行符外的任何單個字元。
最簡單的萬用字元是+元字元。+用於使前面的字元與後面的字元至少匹配一次,也可以任意次地進行匹配。
元字元*使得前面的字元可以進行0次或多次匹配。
元字元?用於使前面的字元進行0次或一次匹配(但是不能超過一次)
正規表示式中常用的乙個萬用字元是. *。可以用它來匹配任何東西
p a t。這裡的n是匹配的最小次數,m是匹配的最大次數,p a t是你試圖量化匹配的字元或字元組。
/ x / x至少出現5次,但是不超過1 0次。
/ x / x至少出現9次,也可能出現更多次。
/ x / x最多出現4次,也可能根本不出現。
/ x / x必須正好出現8次,不能多,也不能少。
perl的正規表示式擁有這樣乙個工具,它稱為字元類。
[ abcde ] 用於匹配a、b、c、d或e中的任何乙個字元
[ a-e ] 與上面相同。用於匹配a、b、c、d或e中的任何乙個字元
g 用於匹配大寫字母g或小寫字母g
[ 0-9 ] 用於匹配乙個數字
[ 0-9 ] + 用於順序匹配乙個或多個數字
[a-za-z] 用於匹配任何一組5個字母字元
[*!@#$%&()] 用於匹配這些符號中的任何乙個
最後乙個例子非常有意思,因為在字元類中,大多數萬用字元會失去它們的「萬用字元性質」,換句話說,它們的執行特性將類似其他任何乙個普通字元。因此,* 實際上代表乙個普通的*字元。
如果插入記號( ^)作為字元類中的第乙個字元,該字元類將變為無效。也就是說,該字元類可以匹配不在該字元類中的任何單個字元。如下面的例子所示:
/[^a-z]/ 表示匹配a-z之外的任意乙個字元。
p e r l包含了某些常用字元類的快捷方式。它們用反斜槓和萬用字元來表示,如表6 - 2所示。
下面是一些例子:
/\d/ match five digits
/\s\w+\s/ match a group of characters surrounded by white space
模式 用於匹配
\ w 乙個單詞字元,與[ a - z a - z 0 - 9 _ ]相同
\ w 乙個非單詞字元(與\ w相反)
\ d 乙個數字,與[ 0 - 9 ]相同
\ d 乙個非數字
\ s 乙個白空間字元,與[ \ t \ f \ r \ n ]相同
\ s 乙個非白空間字元
在列表上下文中,匹配運算子返回括號中匹配的表示式的各個部分的乙個列表。每個加括號的值都是列表的返回值,如果模式不包含括號,則返回1。請看下面這個例子:
($fruit,$color)=/(.*)\sis(.*)/; #注意這裡匹配用的是=,而不是=~。
($fruit,$color)=$_=~m/(.*)\sis(.*)/; #或者可以這樣寫,不知道為啥
最後兩個萬用字元(相信你可能認為萬用字元是沒有止境的)是位置萬用字元。
/ ^ h e l p / 只只匹配以h e l p開頭的行
/ ^ f r a n k l y. * d a r n $ / 只用於匹配以f r a n k l y開頭和以d a r n結尾的行。它們中間的所有字元也進行匹配
/ ^ h y s t e r i a $ / 只用於匹配只包含單詞h y s t e r i a的行
/ ^ $ / 只用於匹配一行的開頭,緊接著匹配該行的結尾。它只用於匹配空行
/ ^ / 只用於匹配帶有開頭字元的行(所有行)。/ $ /的作用也相同
替換運算子s / / /
$ch2name=~s/0\.w**/1\.w**/;
修飾符與多次匹配
替換運算子(s / / /)和匹配運算子(m / /)能夠在匹配正規表示式時不考慮大小寫字母,如果匹配項的後面跟乙個字母i的話。
/luckydog/i
用於匹配和替換的另乙個修飾符是全域性匹配修飾符g。正規表示式(或替換)的匹配操作不是一次完成的,它要重複通過整個字串,第一次匹配後,立即進行下一次匹配(或替換)。在列表上下文中,全域性匹配修飾符可使匹配**返回乙個放在括號中的正規表示式的各個部分的列表:
$_="one fish, two frog,three fred,red foul";
@f=m/\w(f\w\w\w)/g;
該模式首先匹配乙個非單詞字元,然後匹配字母f,接著匹配4個單詞字元。字母f和4個單詞用括號分組。該表示式被計算後,變數@ f將包含4個元素,即f i s h、f r o g、f r e d和f o u l。
p e r l中的乙個常見操作是搜尋陣列,尋找某些模式。p e r l有乙個特殊的函式,可以用來進行這項操作,這個函式稱為g r e p。g r e p函式的句法如下:
grep expression,list
Perl 正規表示式
正規表示式文中列表 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個後向引用 或乙個八進位制轉義符。匹配輸入字串的開始位置。如果設定了 regexp 物件的multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束位置。如果設定了 regexp 物件的multiline 屬性...
Perl正規表示式
元字元 元字元的含義是具有特殊含義的字元,即為元字元,元字元包括 點號能夠匹配所有的單字元,但是換行字元除外 n 簡易量詞 記載匹配正規表示式的時候有些需要重複的字元或者字串,我們在表示這種重複的形式的時候,即是量詞,我們知道的量詞有 表示至少重複一次,表示重複一次或者一次 以上,指的是重複一次或者...
perl 正規表示式
匹配 m 還可以簡寫為 略去 m 替換 s 轉化 tr 這三種形式一般都和 或 搭配使用 其中 表示相匹配,在整條語句中讀作 does,表示不匹配,在整條語句中讀作 doesn t 並在左側有待處理的標量變數。如果沒有該變數和 操作符,則預設為處理 變數中的內容。舉例如下 str i love pe...