7,正規表示式(perl筆記)

tonykorn97發表於2007-06-22
1,使用簡易模式
要以某個模式(正規表示式)來匹配$_的內容,請將它放在兩個斜線(/)之間,如下所示:
$_ = "yabba dabba doo";
if (/abba/) {
print "It matched! ";
}
/abba/表示式會在$_中查詢由"abba"這4個字元所組成的字串,如果找到了,它會返回“真”。

2,關於元字元
點號(.)是萬用字元(wildcard character),它會匹配換行符( )以外的所有單個字元。

3,簡易的量詞
在一個模式中重複某些字是很常見的情況。星號(*)會匹配它的前一個專案0次或多次。
.* 會匹配任意字元無限多次
+ 匹配前一個專案一次以上
? 表示前一個鮮明是可有可無的

4,模式組
小括號
/(fred)+/會匹配像fredfredfred這種字元

5,擇一匹配
豎線(|)在這裡通常念“或”,表示左邊匹配或右邊匹配。也就是說,如果豎線做半邊的模式匹配失敗,則豎線右邊可能會匹配成功。
/fred|barney|betty/對任何提到fred,barney或betty的字元都會匹配成功。

6,字符集
字符集(character class)就是方括號(或稱中括號)裡一連串可能的字元。它只會批評單一字元,但是該字元可以是字符集裡的任何一個。
[abcwxyz]會匹配這7個字元中的任意一個
[a-zA-Z] 匹配字母
[00-177] 匹配任何7位的ASCII字元

7,字符集簡寫
代表任意數字的字符集[0-9]可以被簡寫成d
[A-Za-z0-9_] 簡寫為w
s簡寫擅長處理空白,它相當於[f ]。也就是說,它等於是字符集,裡面包含5種空白字元:換頁(form-feed),製表(tab),換行(newline),回車(carriage return)以及空格(space).
例子:
/fred w+ barney/將會匹配fred,一個空格,一個單詞再接一個空格與barney.

8, 反應簡寫的排出
有時候可能想用[^d],[^w]或[^s],來分別表示某個非數字字元,非單詞字元或非空白字元。只要使用它們的大寫形式-D,W或S就可以了

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

相關文章