Perl語言的文書處理模式之一(轉)

post0發表於2007-08-10
Perl語言的文書處理模式之一(轉)[@more@]

Perl語言的文書處理模式(Regular Expression)

  如果在Unix中曾經使用過sde、awk、grep這些指令的話,相信對於Perl語言中的文書處理模式(Regular Expression) 應該不會感到陌生才對。在Perl語言中因為有這個功能,所以對於字串的處理能力是非常強有力的。Regular Expression可視為用來處理字串的一種模式(pattern),其使用的格式為/pattern/。在Perl語言的程式設計中,經常可以看得到類似語法的應用,在CGI程式設計中也不例外。只要能夠善用文書處理模式的話,要處理任何難的字 符串皆可迎刃而解,在本章中筆者會用深入淺出的方式來介紹Regufar Expression的用法。

一、文書處理(RegularExpression)的常用語法

  以下是文書處理模式中,/pattern/常用到的語法:

  /pattern/ 說明除了換行字元/n外,找尋只有一個字元的字串 x? 找尋0個或是1個x字元 x* 找尋0個或是0個以上的x字元 .* 找尋0個或是0個以上的任何字元 x+ 找尋1個或是1個以上的x字元 .+ 找尋1個或是1個以上的任何字元 {m} 找尋剛好是m各個數指定的字元 {m,n}找尋在m個個數以上、n個個數以下指定的字元 {m,} 找尋m個個數以上指定的字元 [] 找尋符合[]內的字元 [^] 找尋不符合[]內的字元 [0-9] 找尋符合0到9的任何一個字元[a-z] 找尋符合a到z的任何一個字元 [^0-9] 找尋不符合0到9的任何一個字元 [^a-z]找尋不符合a到z的任何一個字元 ^ 找尋字串開頭的字元 $ 找尋字串結尾的字元 d找尋一個digit(數字)的字元,和[0-9]語法一樣 d+ 找尋一個digit(數字)以上的字串,和[0-9]+語法一樣 D 找尋一個non-digit(非數字)的字元,和[^0-9]語法一樣 D+ 找尋一個non-digit(非數字)以上的字串,和[^0-9]+語法一樣 w 找尋一個英文字母或是數值的字元,和[a-zA-Z0-9]語法一樣 w+ 找尋一個以上英文字母或是數值的字串,和[a-zA-Z0-9]+語法一樣 W 找尋一個非英文字母或是數值的字元,和[^a-zA-Z0-9]語法一樣 W+ 找尋一個以上非英文字母或是數值的字串,和[^a-zA-Z0-9]+語法一樣 s 找尋一個空白的字元,和[ntrf]一樣 s+ 找尋一個以上空白的字元,和[ntrf]+一樣S 找尋一個非空白的字元,和[^ntrf]一樣 S+ 找尋一個以上非空白的字元,和[^ntrf]+一樣 b 找尋一個不以英文字母、數值為邊界的字串 B 找尋一個以英文字母、數值為邊界的字串 a|b|c 找到符合a字元或是b字元或是c字元的字串 abc找到一個含有abc的字串 (pattern)。

   ()這個符號會記憶所找尋到的字串,是一個很實用的語法 第一個()內所找到的字串變成$1這個變數或是1變數 第二個()內所找到的字串變成$2這個變數或是2變數 以此類推,筆者會在下一個小節中詳細介紹它的用法/pattern/i i這個引數是代表忽略英文大小謝的意思,也就是在找尋字串的時候,不會去考慮英文的大小寫 如果要在pattern模式中找尋一個有特殊意義的字元,要在這個字元前加上這個符號,這樣才會讓這個特殊字元失效。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-943039/,如需轉載,請註明出處,否則將追究法律責任。

相關文章