測試正規表示式的方法(一)
| 作者:張耀仁 |
| 著作權所有﹐歡迎連結。 |
| 如欲轉載請先聯絡筆者。 |
前言
在設計完一個正規表示式(以下簡稱為 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.' 的字樣: