2008年2月20日 星期三

Regular Expression - Backreferences參考指標

對同一個樣式的比對而言,\1代表第一個符合的項目.\2代表第二個符合的項目.\3代表第三個符合的項目.

ex1.找出tag <TEST></TEST>之間的文字.

$text = <TEST>Application page
go .
</TEST>";
if($text =~ m{<(TEST)>[\w\s.]+<\/\1>}i){
print "Found a title tag.";
}


ex2.使用$1顯示字串內的數字.
$text = "I have 100 dollars.";
if($text =~ m/(\d+)/){
print "I have $1 dollars.";
}

ex3.使用$1,$2,$3來將字串內的文字顛倒排列.
$text = "he eats fish every day .";
$text =~ s/(\w+) *(\w+) *(\w+)/$3 $2 $1/; //$text =~ s/(\w+) +(\w+) +(\w+)/$3 $2 $1/;
print $text;
//fish eats he every day .
// " *" :代表空白(注意空白)

ex4..
$text = "I have 100 dollars.";
if($text =~ m/(\w*)\W(\w*)\W(\w*)\W(\w*)/){
print @a;
}

沒有留言:

關於我自己

Aspire freedom , Hope to do Soming make self complete ~