測試正規表示式的方法(一)
作者:張耀仁
著作權所有﹐歡迎連結。
如欲轉載請先聯絡筆者。

前言
在設計完一個正規表示式(以下簡稱為 RE)後﹐必須測試它是否能達成 原先規劃的目標﹐我們可以藉由一些工具程式﹐如 grep, sed 以及 egrep 來檢測;其中 grep 及 sed 可用來檢測基本型 RE﹐而 egrep 則適用在 延伸型 RE。

利用 grep 來測試基本型 RE
舉例來說﹐『^[0-9][0-9]*$』這個 RE 可用來符合全由數字字元所構成的字串。 以下為 bash 下的執行範例(註:[changyj:~] 是筆者 bash 的提示符號)。


其中 grep 以『行』為資料處理的基本單位﹐ 在此例 grep 所接收到的只有一行﹐且該行的內容只有 28825252 這一個字串。 而這一行符合『^[0-9][0-9]*$』這個 RE﹐所以 grep 把它列出來。

grep 的預設反應會把符合 RE 的資料行印出來﹐ 但在撰寫 shell script 時我們通常希望 grep 保持沈默﹐ 而只靠 grep 執行完時的傳回值來判斷資料行是否符合 RE﹐ 此時可利用『-q』這個選項:


若 grep 找到符合 RE 的資料行時﹐傳回值為 0;否則傳回值為 1。



當字串全由數字字元構成時則印出 'All digits.' 的字樣: