Perl 網頁程式設計課程目錄

Perl Regular Expression 正規運算(二)

正規運算還有很多有趣的地方, 整本書也講不完. 不過這一章盡量討論多一些.

本節打算深入小小探討使用正規運算來尋找某一組字串.

編寫及在瀏覽器執行以下 Perl 程式 :

#!/usr/bin/perl
print "Content-type: text/html\n\n";
#
#
@fool = ("Alex", "Albert", "Alvin", "Tony", "Fung", "Fai", "Hong");
#
#
### Regular Expression #######
#
foreach $fool (@fool) {
  if ($fool =~ /Al/) {
  print "$fool is smart guys !!";
  print "<BR>";
  } else {
  print "$fool is bad guys!!";
  print "<BR>";
  }
}

Perl 程式解釋如下:

第 10 行 : foreach $fool (@fool)

應該已經熟識這樣的程式結構啦 !

第 11 行 : $fool =~ /Al/

如 "Al" 這組字串出現在變數 $fool (即陣列 @fool 內的元素) 之內, 運算便是 "True", 會印出 "xxx is smart guy", 否則會印出 "xxx is bad guy"

因此, 瀏覽器應出現 :

Alex is smart guy !!
Albert is smart guy !!
Alvin is smart guy !!
Tony is bad guy !!
Fung is bad guy !!
Fai is bad guys !!
Hong is bad guys !!

View Example

如果想比較彈性的尋找指定字串, 可以使用 [], 請參考下例:

#!/usr/bin/perl
print "Content-type: text/html\n\n";
#
#
@fool = ("Alex", "Albert", "Alvin", "Tony", "Fung", "Fai", "Hong");
#
#
### Regular Expression #######
#
foreach $fool (@fool) {
  if ($fool =~ /[TF][a-z]n[a-z]/) {
  print "$fool is good guys !!";
  print "<BR>";
  } else {
  print "$fool is bad guys!!";
  print "<BR>";
  }
}

Perl 程式解釋如下:

第 11 行 : $fool =~ /[TF][a-z]n[a-z]/

[TF] 表示第一個搜尋條件只要符合其中一個字母是 "T" 或 "F" 就可以.

[a-z] 表示第二個及第四個搜尋條件可以是 a 至 z 任何字母.

n 表示第三個搜尋條件必需是 n.

在這例子中, 只有 Tony 及 Fung 符合這搜尋條件.

所以, 瀏覽器會出現 :

Alex is bad guys!!
Albert is bad guys!!
Alvin is bad guys!!
Tony is good guys !!
Fung is good guys !!
Fai is bad guys!!
Hong is bad guys!!

View Example