perlRegex

來源:互聯網
上載者:User
第一個元字元是圓點(.)。在Regex中,圓點用於匹配除了分行符號外的任何單個字元。最簡單的萬用字元是+元字元。+用於使前面的字元與後面的字元至少匹配一次,也可以任意次地進行匹配。元字元*使得前面的字元可以進行0次或多次匹配。元字元?用於使前面的字元進行0次或一次匹配(但是不能超過一次)Regex中常用的一個萬用字元是. *。可以用它來匹配任何東西 p a t{n, m}。這裡的n是匹配的最小次數,m是匹配的最大次數,p a t是你試圖量化匹配的字元或字元組。/ x { 5,10}/ x至少出現5次,但是不超過1 0次。
/ x { 9,} / x至少出現9次,也可能出現更多次。
/ x { 0,4 } / x最多出現4次,也可能根本不出現。
/ x { 8 } / x必須正好出現8次,不能多,也不能少。 
perl的Regex擁有這樣一個工具,它稱為字元類。

[ abcde ] 用於匹配a、b、c、d或e中的任何一個字元
[ a-e ] 與上面相同。用於匹配a、b、c、d或e中的任何一個字元
G 用於匹配大寫字母G或小寫字母g
[ 0-9 ] 用於匹配一個數字
[ 0-9 ] + 用於順序匹配一個或多個數字
[A-Za-z] { 5 } 用於匹配任何一組5個字母字元
[*!@#$%&()] 用於匹配這些符號中的任何一個
最後一個例子非常有意思,因為在字元類中,大多數萬用字元會失去它們的“萬用字元性質”,換句話說,它們的運行特性將類似其他任何一個一般字元。因此,* 實際上代表一個普通的*字元。
如果插入記號( ^)作為字元類中的第一個字元,該字元類將變為無效。也就是說,該字元類可以匹配不在該字元類中的任何單個字元。如下面的例子所示:
/[^a-z]/ 表示匹配a-z之外的任意一個字元。
P e r l包含了某些常用字元類的捷徑。它們用反斜線和萬用字元來表示,如表6 - 2所示。
下面是一些例子:
/\d{5}/      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。請看下面這個例子:

$_="apple is red";

($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\.wav/1\.wav/;  修飾符與多次匹配替換運算子(s / / /)和匹配運算子(m / /)能夠在匹配Regex時不考慮大小寫字母,如果匹配項的後面跟一個字母i的話。/luckydog/i用於匹配和替換的另一個修飾符是全域匹配修飾符g。Regex(或替換)的匹配操作不是一次完成的,它要重複通過整個字串,第一次匹配後,立即進行下一次匹配(或替換)。在列表上下文中,全域匹配修飾符可使符合代碼返回一個放在括弧中的Regex的各個部分的列表: $_="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          
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.