1. 程式人生 > >第六章 正則表達式

第六章 正則表達式

第一個 訪問 amp 等於 name 字符 clas 例如 font

1,if匹配

 

 if($regu =~ m/expression/){

 } 

      #正則表達式m可省略,也可使用$_, 即if(/expression/), 相當於$regu = $_; 省略匹配符=~ 和 m

2, 匹配+ &&print

 

  if($line=~m" \b(\w+)\b"){print "$l\n";}  
 等同於:($line=~m" \b(\w+)\b")&&(print " $l\n";); 

   #匹配符號可以是任何的," "; # #; ! !; 等, 不同於split(":",$_) , split(/[^0-9]/,$_),雙引號不同於//.

3.在數組環境下的匹配(無修飾符)

  這會匹配正則表達式能匹配的第一個位置,接著簡單地把反向引用放入一個可快速訪問的表中。例如:

($variable,$equals,$value) = ($line = ~m" (\w+)\s*(=)\s*(\w+)");

  該代碼取到第一個引用(\w+),使之成為$variable;取到第二個引用(=)使之成為$equals;然後取到第三個引用(\w+),使之成為$value。


4.在數組環境下匹配(g修姊符)

  取到正則表達式,盡可能多地應用它.然後把結果放人到由所有可能匹配組成的數組中,

例如:

$line = ‘1.2 3.4 beta 5.66‘;

@matches = ($line =~m" (\d*\.\d+)" g);

[email protected],3.4,5.66。g修飾符完成叠代,首先匹配1.2,其次是3.4,第三是5.6。

部分參考:http://depancao.blog.163.com/blog/static/21025503720127810726692/

5.模式中的特殊字符 捕獲變量()

  圓括號的作用是對字符進行分組,同時圓括號之間的正則表達式內容都會被捕獲,匹配變量依次命名為$1,$2,…;括號有多少對,匹配變量就有多少個。

舉例:

my $name = “ID=GL0012;Parent=Scaffold1”;

$name =~ /ID=(\S+);Parent=(\S+);

print “$1\n”; # 輸出 GL0012 print “$2\n”; # 輸出 Scaffold1

第六章 正則表達式