第六章 正則表達式
阿新 • • 發佈:2017-07-29
第一個 訪問 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
第六章 正則表達式