8. 正規表示式

所謂正規表示式(Regular Express)是一種由字元組成的樣式,用來比對資料,看看究竟符合或不符合這個樣式,然後可做進一步的處理。比如說:電子郵件位址的樣式,可寫成: ([\w\-])+@([\w\-])+(\.[\w\-])+

8.1 樣式

正規表示式,也可以稱為是樣式(Pattern),本身自成一種小型的程式語言。由於在文件處理方面,正規表示式經常可以發揮強大的功能,因此,只要談到樣式比對,大家第一個聯想到的多半是 Perl 這個語言。可見 Perl 的樣式比對功能多麼強大。

先來看一個簡單的例子:

#! /usr/bin/perl

$str="I don't like it! John.";

if ($str =~ /like it/) {
	print "找到了!\n";
} else {
	print "沒有這個樣式!\n";
}

上例中,$str =~ /like it/ 意思是將 $str 和 "like it" 這個樣式做比對,看看是否含有該字串?(結果:有)

Perl 的正規表示式,概可分成三類:比對、置換、轉換。以下將一一說明其用法。

不過,在這之前,要先來了解一下,Perl 的正規表示式所定義的字元集。(這也是為什麼正規表示式被視為一種小型的程式語言的原因。)